Architecture specific change in rpms/golang-github-armon-go-metrics.git
by githook-noreply@fedoraproject.org
The package rpms/golang-github-armon-go-metrics.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/golang-github-armon-go-metrics.gi....
Change:
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
Thanks.
Full change:
============
commit a846c2ae0a18fcb601389f5f1bfc47a2a42f27e9
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Fri Jun 8 17:35:19 2018 +0200
Update to spec 3.0
Upload glide.lock and glide.yaml
diff --git a/.gitignore b/.gitignore
index e010b7f..48e13a9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-/go-metrics-6c5fa0d.tar.gz
+/go-metrics-6c5fa0d8f48f4661c9ba8709799c88d425ad20f0.tar.gz
diff --git a/glide.lock b/glide.lock
new file mode 100644
index 0000000..dd99841
--- /dev/null
+++ b/glide.lock
@@ -0,0 +1,33 @@
+hash: 1a7b1aaf9e64877da9e112bf0b353326b1f11e9c04db147ed0c3c20ae1a284ab
+imports:
+- name: github.com/golang/protobuf
+ subpackages:
+ - proto
+ version: 73aaaa9eb61d74fbf7e256ca586a3a565b308eea
+- name: bitbucket.org/ww/goautoneg
+ version: 75cd24fc2f2c2a2088577d12123ddee5f54e0675
+- name: github.com/prometheus/client_golang
+ subpackages:
+ - text
+ - prometheus
+ - model
+ version: 223315ae31c83f5b3446320627dadfa60614a3e3
+- name: github.com/matttproud/golang_protobuf_extensions
+ subpackages:
+ - pbutil
+ version: fc2b8d3a73c4867e51861bbdd5ae3c1f0869dd6a
+- name: github.com/beorn7/perks
+ subpackages:
+ - quantile
+ version: b965b613227fddccbfffe13eae360ed3fa822f8d
+- name: github.com/prometheus/client_model
+ subpackages:
+ - go
+ version: fa8ad6fec33561be4280a8f0514318c79d7f6cb6
+- name: github.com/DataDog/datadog-go
+ subpackages:
+ - statsd
+ version: a27810dd518c69be741a7fd5d0e39f674f615be8
+- name: github.com/prometheus/procfs
+ version: c91d8eefde16bd047416409eb56353ea84a186e4
+updated: '2018-06-08T15:32:30.409033+00:00'
diff --git a/glide.yaml b/glide.yaml
new file mode 100644
index 0000000..0eff11b
--- /dev/null
+++ b/glide.yaml
@@ -0,0 +1,33 @@
+import:
+- package: github.com/golang/protobuf
+ subpackages:
+ - proto
+ version: 73aaaa9eb61d74fbf7e256ca586a3a565b308eea
+- package: bitbucket.org/ww/goautoneg
+ version: 75cd24fc2f2c2a2088577d12123ddee5f54e0675
+- package: github.com/prometheus/client_golang
+ subpackages:
+ - text
+ - prometheus
+ - model
+ version: 223315ae31c83f5b3446320627dadfa60614a3e3
+- package: github.com/matttproud/golang_protobuf_extensions
+ subpackages:
+ - pbutil
+ version: fc2b8d3a73c4867e51861bbdd5ae3c1f0869dd6a
+- package: github.com/beorn7/perks
+ subpackages:
+ - quantile
+ version: b965b613227fddccbfffe13eae360ed3fa822f8d
+- package: github.com/prometheus/client_model
+ subpackages:
+ - go
+ version: fa8ad6fec33561be4280a8f0514318c79d7f6cb6
+- package: github.com/DataDog/datadog-go
+ subpackages:
+ - statsd
+ version: a27810dd518c69be741a7fd5d0e39f674f615be8
+- package: github.com/prometheus/procfs
+ version: c91d8eefde16bd047416409eb56353ea84a186e4
+package: github.com/armon/go-metrics
+
diff --git a/golang-github-armon-go-metrics.spec b/golang-github-armon-go-metrics.spec
index 03a5fda..1868431 100644
--- a/golang-github-armon-go-metrics.spec
+++ b/golang-github-armon-go-metrics.spec
@@ -1,18 +1,18 @@
# https://github.com/armon/go-metrics
-%global provider_prefix github.com/armon/go-metrics
-%global gobaseipath %{provider_prefix}
+%global goipath github.com/armon/go-metrics
%global commit 6c5fa0d8f48f4661c9ba8709799c88d425ad20f0
-%global commitdate 20150820
-%gocraftmeta -i
+%gometa -i
Name: %{goname}
Version: 0
-Release: 0.13.%{commitdate}git%{shortcommit}%{?dist}
+Release: 0.14%{?dist}
Summary: Exporting performance and runtime metrics to external metrics systems
License: MIT
URL: %{gourl}
Source0: %{gosource}
+Source1: glide.lock
+Source2: glide.yaml
%description
%{summary}
@@ -29,25 +29,27 @@ BuildRequires: golang(github.com/DataDog/datadog-go/statsd)
This package contains library source intended for
building other packages which use import path with
-%{gobaseipath} prefix.
+%{goipath} prefix.
%prep
%gosetup
+cp %{SOURCE1} %{SOURCE2} .
%install
-%goinstall
+%goinstall glide.lock glide.yaml
%check
-%gochecks %{gobaseipath}
-
-#define license tag if not already defined
-%{!?_licensedir:%global license %doc}
+%gochecks -d .
%files devel -f devel.file-list
%license LICENSE
%doc README.md
%changelog
+* Fri Jun 08 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.14.git6c5fa0d
+- Update to spec 3.0
+ Upload glide.lock and glide.yaml
+
* Wed Feb 28 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.13.20150820git6c5fa0d
- Autogenerate some parts using the new macros
diff --git a/sources b/sources
index 8596bef..e38122e 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-c935b6c63703e4e7df12249e6d49ea08 go-metrics-6c5fa0d.tar.gz
+SHA512 (go-metrics-6c5fa0d8f48f4661c9ba8709799c88d425ad20f0.tar.gz) = 4731770d959dd23dca0c3917c37d5cd68032e8ef00f63b2521f5816c8fc03e74149b58924cea8a42a217648e5c052eea67b5e261fe62727ac032fcd2832e05ab
commit 56359e4c77dd479200602ac92db049ef272f55a6
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Wed Feb 28 08:33:19 2018 +0100
Autogenerate some parts using the new macros
diff --git a/golang-github-armon-go-metrics.spec b/golang-github-armon-go-metrics.spec
index f8276cf..03a5fda 100644
--- a/golang-github-armon-go-metrics.spec
+++ b/golang-github-armon-go-metrics.spec
@@ -1,164 +1,56 @@
-%if 0%{?fedora} || 0%{?rhel} == 6
-%global with_devel 1
-%global with_bundled 0
-%global with_debug 0
-# Tests require configured server statsite
-%global with_check 0
-%global with_unit_test 1
-%else
-%global with_devel 0
-%global with_bundled 0
-%global with_debug 0
-%global with_check 0
-%global with_unit_test 0
-%endif
-
-%if 0%{?with_debug}
-%global _dwz_low_mem_die_limit 0
-%else
-%global debug_package %{nil}
-%endif
-
-%global provider github
-%global provider_tld com
-%global project armon
-%global repo go-metrics
# https://github.com/armon/go-metrics
-%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
-%global import_path %{provider_prefix}
+%global provider_prefix github.com/armon/go-metrics
+%global gobaseipath %{provider_prefix}
%global commit 6c5fa0d8f48f4661c9ba8709799c88d425ad20f0
-%global shortcommit %(c=%{commit}; echo ${c:0:7})
+%global commitdate 20150820
-Name: golang-%{provider}-%{project}-%{repo}
+%gocraftmeta -i
+
+Name: %{goname}
Version: 0
-Release: 0.12.git%{shortcommit}%{?dist}
+Release: 0.13.%{commitdate}git%{shortcommit}%{?dist}
Summary: Exporting performance and runtime metrics to external metrics systems
License: MIT
-URL: https://%{import_path}
-Source0: https://%{import_path}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz
-
-# e.g. el6 has ppc64 arch without gcc-go, so EA tag is required
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
-# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
-BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
+URL: %{gourl}
+Source0: %{gosource}
%description
%{summary}
-%if 0%{?with_devel}
%package devel
Summary: %{summary}
BuildArch: noarch
-%if 0%{?with_check}
BuildRequires: golang(github.com/prometheus/client_golang/prometheus)
BuildRequires: golang(github.com/DataDog/datadog-go/statsd)
-%endif
-
-Requires: golang(github.com/prometheus/client_golang/prometheus)
-Requires: golang(github.com/DataDog/datadog-go/statsd)
-
-
-Provides: golang(%{import_path}) = %{version}-%{release}
-Provides: golang(%{import_path}/prometheus) = %{version}-%{release}
-Provides: golang(%{import_path}/datadog) = %{version}-%{release}
%description devel
%{summary}
This package contains library source intended for
building other packages which use import path with
-%{import_path} prefix.
-%endif
-
-%if 0%{?with_unit_test} && 0%{?with_devel}
-%package unit-test
-Summary: Unit tests for %{name} package
-# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
-BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
-
-%if 0%{?with_check}
-#Here comes all BuildRequires: PACKAGE the unit tests
-#in %%check section need for running
-%endif
-
-# test subpackage tests code from devel subpackage
-Requires: %{name}-devel = %{version}-%{release}
-
-%description unit-test
-%{summary}
-
-This package contains unit tests for project
-providing packages with %{import_path} prefix.
-%endif
+%{gobaseipath} prefix.
%prep
-%setup -q -n %{repo}-%{commit}
-
-%build
+%gosetup
%install
-# source codes for building projects
-%if 0%{?with_devel}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list
-# find all *.go but no *_test.go files and generate devel.file-list
-for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do
- echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> devel.file-list
-done
-%endif
-
-# testing files for this project
-%if 0%{?with_unit_test} && 0%{?with_devel}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-# find all *_test.go files and generate unit-test.file-list
-for file in $(find . -iname "*_test.go"); do
- echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> unit-test.file-list
-done
-%endif
-
-%if 0%{?with_devel}
-sort -u -o devel.file-list devel.file-list
-%endif
+%goinstall
%check
-%if 0%{?with_check} && 0%{?with_unit_test} && 0%{?with_devel}
-%if ! 0%{?with_bundled}
-export GOPATH=%{buildroot}/%{gopath}:%{gopath}
-%else
-export GOPATH=%{buildroot}/%{gopath}:$(pwd)/Godeps/_workspace:%{gopath}
-%endif
-
-%if ! 0%{?gotest:1}
-%global gotest go test
-%endif
-
-%gotest %{import_path}
-%endif
+%gochecks %{gobaseipath}
#define license tag if not already defined
%{!?_licensedir:%global license %doc}
-%if 0%{?with_devel}
%files devel -f devel.file-list
%license LICENSE
%doc README.md
-%dir %{gopath}/src/%{provider}.%{provider_tld}/%{project}
-%endif
-
-%if 0%{?with_unit_test} && 0%{?with_devel}
-%files unit-test -f unit-test.file-list
-%license LICENSE
-%doc README.md
-%endif
%changelog
+* Wed Feb 28 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.13.20150820git6c5fa0d
+- Autogenerate some parts using the new macros
+
* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0-0.12.git6c5fa0d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
5 years, 11 months
Architecture specific change in rpms/golang-github-armon-go-metrics.git
by githook-noreply@fedoraproject.org
The package rpms/golang-github-armon-go-metrics.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/golang-github-armon-go-metrics.gi....
Change:
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
Thanks.
Full change:
============
commit a846c2ae0a18fcb601389f5f1bfc47a2a42f27e9
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Fri Jun 8 17:35:19 2018 +0200
Update to spec 3.0
Upload glide.lock and glide.yaml
diff --git a/.gitignore b/.gitignore
index e010b7f..48e13a9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-/go-metrics-6c5fa0d.tar.gz
+/go-metrics-6c5fa0d8f48f4661c9ba8709799c88d425ad20f0.tar.gz
diff --git a/glide.lock b/glide.lock
new file mode 100644
index 0000000..dd99841
--- /dev/null
+++ b/glide.lock
@@ -0,0 +1,33 @@
+hash: 1a7b1aaf9e64877da9e112bf0b353326b1f11e9c04db147ed0c3c20ae1a284ab
+imports:
+- name: github.com/golang/protobuf
+ subpackages:
+ - proto
+ version: 73aaaa9eb61d74fbf7e256ca586a3a565b308eea
+- name: bitbucket.org/ww/goautoneg
+ version: 75cd24fc2f2c2a2088577d12123ddee5f54e0675
+- name: github.com/prometheus/client_golang
+ subpackages:
+ - text
+ - prometheus
+ - model
+ version: 223315ae31c83f5b3446320627dadfa60614a3e3
+- name: github.com/matttproud/golang_protobuf_extensions
+ subpackages:
+ - pbutil
+ version: fc2b8d3a73c4867e51861bbdd5ae3c1f0869dd6a
+- name: github.com/beorn7/perks
+ subpackages:
+ - quantile
+ version: b965b613227fddccbfffe13eae360ed3fa822f8d
+- name: github.com/prometheus/client_model
+ subpackages:
+ - go
+ version: fa8ad6fec33561be4280a8f0514318c79d7f6cb6
+- name: github.com/DataDog/datadog-go
+ subpackages:
+ - statsd
+ version: a27810dd518c69be741a7fd5d0e39f674f615be8
+- name: github.com/prometheus/procfs
+ version: c91d8eefde16bd047416409eb56353ea84a186e4
+updated: '2018-06-08T15:32:30.409033+00:00'
diff --git a/glide.yaml b/glide.yaml
new file mode 100644
index 0000000..0eff11b
--- /dev/null
+++ b/glide.yaml
@@ -0,0 +1,33 @@
+import:
+- package: github.com/golang/protobuf
+ subpackages:
+ - proto
+ version: 73aaaa9eb61d74fbf7e256ca586a3a565b308eea
+- package: bitbucket.org/ww/goautoneg
+ version: 75cd24fc2f2c2a2088577d12123ddee5f54e0675
+- package: github.com/prometheus/client_golang
+ subpackages:
+ - text
+ - prometheus
+ - model
+ version: 223315ae31c83f5b3446320627dadfa60614a3e3
+- package: github.com/matttproud/golang_protobuf_extensions
+ subpackages:
+ - pbutil
+ version: fc2b8d3a73c4867e51861bbdd5ae3c1f0869dd6a
+- package: github.com/beorn7/perks
+ subpackages:
+ - quantile
+ version: b965b613227fddccbfffe13eae360ed3fa822f8d
+- package: github.com/prometheus/client_model
+ subpackages:
+ - go
+ version: fa8ad6fec33561be4280a8f0514318c79d7f6cb6
+- package: github.com/DataDog/datadog-go
+ subpackages:
+ - statsd
+ version: a27810dd518c69be741a7fd5d0e39f674f615be8
+- package: github.com/prometheus/procfs
+ version: c91d8eefde16bd047416409eb56353ea84a186e4
+package: github.com/armon/go-metrics
+
diff --git a/golang-github-armon-go-metrics.spec b/golang-github-armon-go-metrics.spec
index 03a5fda..1868431 100644
--- a/golang-github-armon-go-metrics.spec
+++ b/golang-github-armon-go-metrics.spec
@@ -1,18 +1,18 @@
# https://github.com/armon/go-metrics
-%global provider_prefix github.com/armon/go-metrics
-%global gobaseipath %{provider_prefix}
+%global goipath github.com/armon/go-metrics
%global commit 6c5fa0d8f48f4661c9ba8709799c88d425ad20f0
-%global commitdate 20150820
-%gocraftmeta -i
+%gometa -i
Name: %{goname}
Version: 0
-Release: 0.13.%{commitdate}git%{shortcommit}%{?dist}
+Release: 0.14%{?dist}
Summary: Exporting performance and runtime metrics to external metrics systems
License: MIT
URL: %{gourl}
Source0: %{gosource}
+Source1: glide.lock
+Source2: glide.yaml
%description
%{summary}
@@ -29,25 +29,27 @@ BuildRequires: golang(github.com/DataDog/datadog-go/statsd)
This package contains library source intended for
building other packages which use import path with
-%{gobaseipath} prefix.
+%{goipath} prefix.
%prep
%gosetup
+cp %{SOURCE1} %{SOURCE2} .
%install
-%goinstall
+%goinstall glide.lock glide.yaml
%check
-%gochecks %{gobaseipath}
-
-#define license tag if not already defined
-%{!?_licensedir:%global license %doc}
+%gochecks -d .
%files devel -f devel.file-list
%license LICENSE
%doc README.md
%changelog
+* Fri Jun 08 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.14.git6c5fa0d
+- Update to spec 3.0
+ Upload glide.lock and glide.yaml
+
* Wed Feb 28 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.13.20150820git6c5fa0d
- Autogenerate some parts using the new macros
diff --git a/sources b/sources
index 8596bef..e38122e 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-c935b6c63703e4e7df12249e6d49ea08 go-metrics-6c5fa0d.tar.gz
+SHA512 (go-metrics-6c5fa0d8f48f4661c9ba8709799c88d425ad20f0.tar.gz) = 4731770d959dd23dca0c3917c37d5cd68032e8ef00f63b2521f5816c8fc03e74149b58924cea8a42a217648e5c052eea67b5e261fe62727ac032fcd2832e05ab
commit 56359e4c77dd479200602ac92db049ef272f55a6
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Wed Feb 28 08:33:19 2018 +0100
Autogenerate some parts using the new macros
diff --git a/golang-github-armon-go-metrics.spec b/golang-github-armon-go-metrics.spec
index f8276cf..03a5fda 100644
--- a/golang-github-armon-go-metrics.spec
+++ b/golang-github-armon-go-metrics.spec
@@ -1,164 +1,56 @@
-%if 0%{?fedora} || 0%{?rhel} == 6
-%global with_devel 1
-%global with_bundled 0
-%global with_debug 0
-# Tests require configured server statsite
-%global with_check 0
-%global with_unit_test 1
-%else
-%global with_devel 0
-%global with_bundled 0
-%global with_debug 0
-%global with_check 0
-%global with_unit_test 0
-%endif
-
-%if 0%{?with_debug}
-%global _dwz_low_mem_die_limit 0
-%else
-%global debug_package %{nil}
-%endif
-
-%global provider github
-%global provider_tld com
-%global project armon
-%global repo go-metrics
# https://github.com/armon/go-metrics
-%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
-%global import_path %{provider_prefix}
+%global provider_prefix github.com/armon/go-metrics
+%global gobaseipath %{provider_prefix}
%global commit 6c5fa0d8f48f4661c9ba8709799c88d425ad20f0
-%global shortcommit %(c=%{commit}; echo ${c:0:7})
+%global commitdate 20150820
-Name: golang-%{provider}-%{project}-%{repo}
+%gocraftmeta -i
+
+Name: %{goname}
Version: 0
-Release: 0.12.git%{shortcommit}%{?dist}
+Release: 0.13.%{commitdate}git%{shortcommit}%{?dist}
Summary: Exporting performance and runtime metrics to external metrics systems
License: MIT
-URL: https://%{import_path}
-Source0: https://%{import_path}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz
-
-# e.g. el6 has ppc64 arch without gcc-go, so EA tag is required
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
-# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
-BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
+URL: %{gourl}
+Source0: %{gosource}
%description
%{summary}
-%if 0%{?with_devel}
%package devel
Summary: %{summary}
BuildArch: noarch
-%if 0%{?with_check}
BuildRequires: golang(github.com/prometheus/client_golang/prometheus)
BuildRequires: golang(github.com/DataDog/datadog-go/statsd)
-%endif
-
-Requires: golang(github.com/prometheus/client_golang/prometheus)
-Requires: golang(github.com/DataDog/datadog-go/statsd)
-
-
-Provides: golang(%{import_path}) = %{version}-%{release}
-Provides: golang(%{import_path}/prometheus) = %{version}-%{release}
-Provides: golang(%{import_path}/datadog) = %{version}-%{release}
%description devel
%{summary}
This package contains library source intended for
building other packages which use import path with
-%{import_path} prefix.
-%endif
-
-%if 0%{?with_unit_test} && 0%{?with_devel}
-%package unit-test
-Summary: Unit tests for %{name} package
-# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
-BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
-
-%if 0%{?with_check}
-#Here comes all BuildRequires: PACKAGE the unit tests
-#in %%check section need for running
-%endif
-
-# test subpackage tests code from devel subpackage
-Requires: %{name}-devel = %{version}-%{release}
-
-%description unit-test
-%{summary}
-
-This package contains unit tests for project
-providing packages with %{import_path} prefix.
-%endif
+%{gobaseipath} prefix.
%prep
-%setup -q -n %{repo}-%{commit}
-
-%build
+%gosetup
%install
-# source codes for building projects
-%if 0%{?with_devel}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list
-# find all *.go but no *_test.go files and generate devel.file-list
-for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do
- echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> devel.file-list
-done
-%endif
-
-# testing files for this project
-%if 0%{?with_unit_test} && 0%{?with_devel}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-# find all *_test.go files and generate unit-test.file-list
-for file in $(find . -iname "*_test.go"); do
- echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> unit-test.file-list
-done
-%endif
-
-%if 0%{?with_devel}
-sort -u -o devel.file-list devel.file-list
-%endif
+%goinstall
%check
-%if 0%{?with_check} && 0%{?with_unit_test} && 0%{?with_devel}
-%if ! 0%{?with_bundled}
-export GOPATH=%{buildroot}/%{gopath}:%{gopath}
-%else
-export GOPATH=%{buildroot}/%{gopath}:$(pwd)/Godeps/_workspace:%{gopath}
-%endif
-
-%if ! 0%{?gotest:1}
-%global gotest go test
-%endif
-
-%gotest %{import_path}
-%endif
+%gochecks %{gobaseipath}
#define license tag if not already defined
%{!?_licensedir:%global license %doc}
-%if 0%{?with_devel}
%files devel -f devel.file-list
%license LICENSE
%doc README.md
-%dir %{gopath}/src/%{provider}.%{provider_tld}/%{project}
-%endif
-
-%if 0%{?with_unit_test} && 0%{?with_devel}
-%files unit-test -f unit-test.file-list
-%license LICENSE
-%doc README.md
-%endif
%changelog
+* Wed Feb 28 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.13.20150820git6c5fa0d
+- Autogenerate some parts using the new macros
+
* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0-0.12.git6c5fa0d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
5 years, 11 months
Architecture specific change in rpms/golang-github-armon-go-metrics.git
by githook-noreply@fedoraproject.org
The package rpms/golang-github-armon-go-metrics.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/golang-github-armon-go-metrics.gi....
Change:
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
Thanks.
Full change:
============
commit a846c2ae0a18fcb601389f5f1bfc47a2a42f27e9
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Fri Jun 8 17:35:19 2018 +0200
Update to spec 3.0
Upload glide.lock and glide.yaml
diff --git a/.gitignore b/.gitignore
index e010b7f..48e13a9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-/go-metrics-6c5fa0d.tar.gz
+/go-metrics-6c5fa0d8f48f4661c9ba8709799c88d425ad20f0.tar.gz
diff --git a/glide.lock b/glide.lock
new file mode 100644
index 0000000..dd99841
--- /dev/null
+++ b/glide.lock
@@ -0,0 +1,33 @@
+hash: 1a7b1aaf9e64877da9e112bf0b353326b1f11e9c04db147ed0c3c20ae1a284ab
+imports:
+- name: github.com/golang/protobuf
+ subpackages:
+ - proto
+ version: 73aaaa9eb61d74fbf7e256ca586a3a565b308eea
+- name: bitbucket.org/ww/goautoneg
+ version: 75cd24fc2f2c2a2088577d12123ddee5f54e0675
+- name: github.com/prometheus/client_golang
+ subpackages:
+ - text
+ - prometheus
+ - model
+ version: 223315ae31c83f5b3446320627dadfa60614a3e3
+- name: github.com/matttproud/golang_protobuf_extensions
+ subpackages:
+ - pbutil
+ version: fc2b8d3a73c4867e51861bbdd5ae3c1f0869dd6a
+- name: github.com/beorn7/perks
+ subpackages:
+ - quantile
+ version: b965b613227fddccbfffe13eae360ed3fa822f8d
+- name: github.com/prometheus/client_model
+ subpackages:
+ - go
+ version: fa8ad6fec33561be4280a8f0514318c79d7f6cb6
+- name: github.com/DataDog/datadog-go
+ subpackages:
+ - statsd
+ version: a27810dd518c69be741a7fd5d0e39f674f615be8
+- name: github.com/prometheus/procfs
+ version: c91d8eefde16bd047416409eb56353ea84a186e4
+updated: '2018-06-08T15:32:30.409033+00:00'
diff --git a/glide.yaml b/glide.yaml
new file mode 100644
index 0000000..0eff11b
--- /dev/null
+++ b/glide.yaml
@@ -0,0 +1,33 @@
+import:
+- package: github.com/golang/protobuf
+ subpackages:
+ - proto
+ version: 73aaaa9eb61d74fbf7e256ca586a3a565b308eea
+- package: bitbucket.org/ww/goautoneg
+ version: 75cd24fc2f2c2a2088577d12123ddee5f54e0675
+- package: github.com/prometheus/client_golang
+ subpackages:
+ - text
+ - prometheus
+ - model
+ version: 223315ae31c83f5b3446320627dadfa60614a3e3
+- package: github.com/matttproud/golang_protobuf_extensions
+ subpackages:
+ - pbutil
+ version: fc2b8d3a73c4867e51861bbdd5ae3c1f0869dd6a
+- package: github.com/beorn7/perks
+ subpackages:
+ - quantile
+ version: b965b613227fddccbfffe13eae360ed3fa822f8d
+- package: github.com/prometheus/client_model
+ subpackages:
+ - go
+ version: fa8ad6fec33561be4280a8f0514318c79d7f6cb6
+- package: github.com/DataDog/datadog-go
+ subpackages:
+ - statsd
+ version: a27810dd518c69be741a7fd5d0e39f674f615be8
+- package: github.com/prometheus/procfs
+ version: c91d8eefde16bd047416409eb56353ea84a186e4
+package: github.com/armon/go-metrics
+
diff --git a/golang-github-armon-go-metrics.spec b/golang-github-armon-go-metrics.spec
index 03a5fda..1868431 100644
--- a/golang-github-armon-go-metrics.spec
+++ b/golang-github-armon-go-metrics.spec
@@ -1,18 +1,18 @@
# https://github.com/armon/go-metrics
-%global provider_prefix github.com/armon/go-metrics
-%global gobaseipath %{provider_prefix}
+%global goipath github.com/armon/go-metrics
%global commit 6c5fa0d8f48f4661c9ba8709799c88d425ad20f0
-%global commitdate 20150820
-%gocraftmeta -i
+%gometa -i
Name: %{goname}
Version: 0
-Release: 0.13.%{commitdate}git%{shortcommit}%{?dist}
+Release: 0.14%{?dist}
Summary: Exporting performance and runtime metrics to external metrics systems
License: MIT
URL: %{gourl}
Source0: %{gosource}
+Source1: glide.lock
+Source2: glide.yaml
%description
%{summary}
@@ -29,25 +29,27 @@ BuildRequires: golang(github.com/DataDog/datadog-go/statsd)
This package contains library source intended for
building other packages which use import path with
-%{gobaseipath} prefix.
+%{goipath} prefix.
%prep
%gosetup
+cp %{SOURCE1} %{SOURCE2} .
%install
-%goinstall
+%goinstall glide.lock glide.yaml
%check
-%gochecks %{gobaseipath}
-
-#define license tag if not already defined
-%{!?_licensedir:%global license %doc}
+%gochecks -d .
%files devel -f devel.file-list
%license LICENSE
%doc README.md
%changelog
+* Fri Jun 08 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.14.git6c5fa0d
+- Update to spec 3.0
+ Upload glide.lock and glide.yaml
+
* Wed Feb 28 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.13.20150820git6c5fa0d
- Autogenerate some parts using the new macros
diff --git a/sources b/sources
index 8596bef..e38122e 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-c935b6c63703e4e7df12249e6d49ea08 go-metrics-6c5fa0d.tar.gz
+SHA512 (go-metrics-6c5fa0d8f48f4661c9ba8709799c88d425ad20f0.tar.gz) = 4731770d959dd23dca0c3917c37d5cd68032e8ef00f63b2521f5816c8fc03e74149b58924cea8a42a217648e5c052eea67b5e261fe62727ac032fcd2832e05ab
commit 56359e4c77dd479200602ac92db049ef272f55a6
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Wed Feb 28 08:33:19 2018 +0100
Autogenerate some parts using the new macros
diff --git a/golang-github-armon-go-metrics.spec b/golang-github-armon-go-metrics.spec
index f8276cf..03a5fda 100644
--- a/golang-github-armon-go-metrics.spec
+++ b/golang-github-armon-go-metrics.spec
@@ -1,164 +1,56 @@
-%if 0%{?fedora} || 0%{?rhel} == 6
-%global with_devel 1
-%global with_bundled 0
-%global with_debug 0
-# Tests require configured server statsite
-%global with_check 0
-%global with_unit_test 1
-%else
-%global with_devel 0
-%global with_bundled 0
-%global with_debug 0
-%global with_check 0
-%global with_unit_test 0
-%endif
-
-%if 0%{?with_debug}
-%global _dwz_low_mem_die_limit 0
-%else
-%global debug_package %{nil}
-%endif
-
-%global provider github
-%global provider_tld com
-%global project armon
-%global repo go-metrics
# https://github.com/armon/go-metrics
-%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
-%global import_path %{provider_prefix}
+%global provider_prefix github.com/armon/go-metrics
+%global gobaseipath %{provider_prefix}
%global commit 6c5fa0d8f48f4661c9ba8709799c88d425ad20f0
-%global shortcommit %(c=%{commit}; echo ${c:0:7})
+%global commitdate 20150820
-Name: golang-%{provider}-%{project}-%{repo}
+%gocraftmeta -i
+
+Name: %{goname}
Version: 0
-Release: 0.12.git%{shortcommit}%{?dist}
+Release: 0.13.%{commitdate}git%{shortcommit}%{?dist}
Summary: Exporting performance and runtime metrics to external metrics systems
License: MIT
-URL: https://%{import_path}
-Source0: https://%{import_path}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz
-
-# e.g. el6 has ppc64 arch without gcc-go, so EA tag is required
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
-# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
-BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
+URL: %{gourl}
+Source0: %{gosource}
%description
%{summary}
-%if 0%{?with_devel}
%package devel
Summary: %{summary}
BuildArch: noarch
-%if 0%{?with_check}
BuildRequires: golang(github.com/prometheus/client_golang/prometheus)
BuildRequires: golang(github.com/DataDog/datadog-go/statsd)
-%endif
-
-Requires: golang(github.com/prometheus/client_golang/prometheus)
-Requires: golang(github.com/DataDog/datadog-go/statsd)
-
-
-Provides: golang(%{import_path}) = %{version}-%{release}
-Provides: golang(%{import_path}/prometheus) = %{version}-%{release}
-Provides: golang(%{import_path}/datadog) = %{version}-%{release}
%description devel
%{summary}
This package contains library source intended for
building other packages which use import path with
-%{import_path} prefix.
-%endif
-
-%if 0%{?with_unit_test} && 0%{?with_devel}
-%package unit-test
-Summary: Unit tests for %{name} package
-# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
-BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
-
-%if 0%{?with_check}
-#Here comes all BuildRequires: PACKAGE the unit tests
-#in %%check section need for running
-%endif
-
-# test subpackage tests code from devel subpackage
-Requires: %{name}-devel = %{version}-%{release}
-
-%description unit-test
-%{summary}
-
-This package contains unit tests for project
-providing packages with %{import_path} prefix.
-%endif
+%{gobaseipath} prefix.
%prep
-%setup -q -n %{repo}-%{commit}
-
-%build
+%gosetup
%install
-# source codes for building projects
-%if 0%{?with_devel}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list
-# find all *.go but no *_test.go files and generate devel.file-list
-for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do
- echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> devel.file-list
-done
-%endif
-
-# testing files for this project
-%if 0%{?with_unit_test} && 0%{?with_devel}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-# find all *_test.go files and generate unit-test.file-list
-for file in $(find . -iname "*_test.go"); do
- echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> unit-test.file-list
-done
-%endif
-
-%if 0%{?with_devel}
-sort -u -o devel.file-list devel.file-list
-%endif
+%goinstall
%check
-%if 0%{?with_check} && 0%{?with_unit_test} && 0%{?with_devel}
-%if ! 0%{?with_bundled}
-export GOPATH=%{buildroot}/%{gopath}:%{gopath}
-%else
-export GOPATH=%{buildroot}/%{gopath}:$(pwd)/Godeps/_workspace:%{gopath}
-%endif
-
-%if ! 0%{?gotest:1}
-%global gotest go test
-%endif
-
-%gotest %{import_path}
-%endif
+%gochecks %{gobaseipath}
#define license tag if not already defined
%{!?_licensedir:%global license %doc}
-%if 0%{?with_devel}
%files devel -f devel.file-list
%license LICENSE
%doc README.md
-%dir %{gopath}/src/%{provider}.%{provider_tld}/%{project}
-%endif
-
-%if 0%{?with_unit_test} && 0%{?with_devel}
-%files unit-test -f unit-test.file-list
-%license LICENSE
-%doc README.md
-%endif
%changelog
+* Wed Feb 28 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.13.20150820git6c5fa0d
+- Autogenerate some parts using the new macros
+
* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0-0.12.git6c5fa0d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
commit aa30ab7e5bc78b95a0335e1a389fa322416a3b80
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Wed Feb 7 13:57:44 2018 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/golang-github-armon-go-metrics.spec b/golang-github-armon-go-metrics.spec
index a687ff5..f8276cf 100644
--- a/golang-github-armon-go-metrics.spec
+++ b/golang-github-armon-go-metrics.spec
@@ -31,7 +31,7 @@
Name: golang-%{provider}-%{project}-%{repo}
Version: 0
-Release: 0.11.git%{shortcommit}%{?dist}
+Release: 0.12.git%{shortcommit}%{?dist}
Summary: Exporting performance and runtime metrics to external metrics systems
License: MIT
URL: https://%{import_path}
@@ -159,6 +159,9 @@ export GOPATH=%{buildroot}/%{gopath}:$(pwd)/Godeps/_workspace:%{gopath}
%endif
%changelog
+* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0-0.12.git6c5fa0d
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
* Wed Aug 02 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 0-0.11.git6c5fa0d
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
5 years, 11 months
Architecture specific change in rpms/golang-github-armon-gomdb.git
by githook-noreply@fedoraproject.org
The package rpms/golang-github-armon-gomdb.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/golang-github-armon-gomdb.git/com....
Change:
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
Thanks.
Full change:
============
commit 80bdc4e48a481198bbb776cce83aaf2144b529bd
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Fri Jun 8 17:24:33 2018 +0200
Upload glide.lock and glide.yam
diff --git a/glide.lock b/glide.lock
new file mode 100644
index 0000000..3e83805
--- /dev/null
+++ b/glide.lock
@@ -0,0 +1,3 @@
+hash: 8a4056934264560be4261a4558efec0f3478cafddbcd771b1a54aa362c436fe1
+imports: []
+updated: '2018-06-08T15:16:13.496974+00:00'
diff --git a/glide.yaml b/glide.yaml
new file mode 100644
index 0000000..29f0db9
--- /dev/null
+++ b/glide.yaml
@@ -0,0 +1,3 @@
+import: []
+package: github.com/armon/gomdb
+
diff --git a/golang-github-armon-gomdb.spec b/golang-github-armon-gomdb.spec
index 2d50590..2020196 100644
--- a/golang-github-armon-gomdb.spec
+++ b/golang-github-armon-gomdb.spec
@@ -11,6 +11,8 @@ Summary: Go wrapper for LMDB - OpenLDAP Lightning Memory-Mapped Database
License: BSD
URL: %{gourl}
Source0: %{gosource}
+Source1: glide.lock
+Source2: glide.yaml
Patch0: use-system-lmdb.patch
%description
@@ -33,9 +35,10 @@ building other packages which use import path with
%prep
%gosetup
%patch0 -p1
+cp %{SOURCE1} %{SOURCE2} .
%install
-%goinstall
+%goinstall glide.lock glide.yaml
%check
%gochecks -d .
@@ -50,6 +53,7 @@ building other packages which use import path with
%changelog
* Fri Jun 08 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.13.git.git151f2e0
- Update to spec 3.0
+ Upload glide.lock and glide.yaml
* Mon Feb 26 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.12.20150106git151f2e0
- Autogenerate some parts using the new macros
commit 11366978c96e97ea73915aed49b0319f820db747
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Fri Jun 8 17:15:00 2018 +0200
Update to spec 3.0
diff --git a/.gitignore b/.gitignore
index 69c6b30..607e92e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-/gomdb-151f2e0.tar.gz
+/gomdb-151f2e08ef45cb0e57d694b2562f351955dff572.tar.gz
diff --git a/golang-github-armon-gomdb.spec b/golang-github-armon-gomdb.spec
index 544faba..2d50590 100644
--- a/golang-github-armon-gomdb.spec
+++ b/golang-github-armon-gomdb.spec
@@ -1,14 +1,12 @@
# https://github.com/armon/gomdb
-%global provider_prefix github.com/armon/gomdb
-%global gobaseipath %{provider_prefix}
+%global goipath github.com/armon/gomdb
%global commit 151f2e08ef45cb0e57d694b2562f351955dff572
-%global commitdate 20150106
-%gocraftmeta -i
+%gometa -i
Name: %{goname}
Version: 0
-Release: 0.12.%{commitdate}git%{shortcommit}%{?dist}
+Release: 0.13.git%{?dist}
Summary: Go wrapper for LMDB - OpenLDAP Lightning Memory-Mapped Database
License: BSD
URL: %{gourl}
@@ -40,7 +38,7 @@ building other packages which use import path with
%goinstall
%check
-%gochecks %{gobaseipath}
+%gochecks -d .
#define license tag if not already defined
%{!?_licensedir:%global license %doc}
@@ -50,6 +48,9 @@ building other packages which use import path with
%doc README.md
%changelog
+* Fri Jun 08 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.13.git.git151f2e0
+- Update to spec 3.0
+
* Mon Feb 26 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.12.20150106git151f2e0
- Autogenerate some parts using the new macros
diff --git a/sources b/sources
index 738e103..ff23d6b 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-bef94b43aae605157979a041d2655b43 gomdb-151f2e0.tar.gz
+SHA512 (gomdb-151f2e08ef45cb0e57d694b2562f351955dff572.tar.gz) = f8f0268b49a091166302440ee34e40ff89a4c6adacfcd2daa62161a04f8ebe2a5e66074c125afa40147eba7493ce5fd5fb75e33b3955ef9f0f836ecc409603a3
commit 726d9ce8d436c5f744d812746c179e35ef3220ad
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Mon Feb 26 12:52:19 2018 +0100
Autogenerate some parts using the new macros
diff --git a/golang-github-armon-gomdb.spec b/golang-github-armon-gomdb.spec
index 872166b..544faba 100644
--- a/golang-github-armon-gomdb.spec
+++ b/golang-github-armon-gomdb.spec
@@ -1,163 +1,58 @@
-%if 0%{?fedora} || 0%{?rhel} == 6
-%global with_devel 1
-%global with_bundled 0
-%global with_debug 0
-%global with_check 1
-%global with_unit_test 1
-%else
-%global with_devel 0
-%global with_bundled 0
-%global with_debug 0
-%global with_check 0
-%global with_unit_test 0
-%endif
-
-%if 0%{?with_debug}
-%global _dwz_low_mem_die_limit 0
-%else
-%global debug_package %{nil}
-%endif
-
-%global provider github
-%global provider_tld com
-%global project armon
-%global repo gomdb
# https://github.com/armon/gomdb
-%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
-%global import_path %{provider_prefix}
+%global provider_prefix github.com/armon/gomdb
+%global gobaseipath %{provider_prefix}
%global commit 151f2e08ef45cb0e57d694b2562f351955dff572
-%global shortcommit %(c=%{commit}; echo ${c:0:7})
+%global commitdate 20150106
-Name: golang-%{provider}-%{project}-%{repo}
+%gocraftmeta -i
+
+Name: %{goname}
Version: 0
-Release: 0.11.git%{shortcommit}%{?dist}
-Summary: Go wrapper for LMDB - OpenLDAP Lightning Memory-Mapped Database
+Release: 0.12.%{commitdate}git%{shortcommit}%{?dist}
+Summary: Go wrapper for LMDB - OpenLDAP Lightning Memory-Mapped Database
License: BSD
-URL: https://%{provider_prefix}
-Source0: https://%{provider_prefix}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz
+URL: %{gourl}
+Source0: %{gosource}
Patch0: use-system-lmdb.patch
-# e.g. el6 has ppc64 arch without gcc-go, so EA tag is required
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
-# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
-BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
-
%description
%{summary}
-%if 0%{?with_devel}
%package devel
Summary: %{summary}
BuildArch: noarch
-Requires: lmdb-devel
-%if 0%{?with_check}
BuildRequires: lmdb-devel
-%endif
-
-Provides: golang(%{import_path}) = %{version}-%{release}
+Requires: lmdb-devel
%description devel
%{summary}
This package contains library source intended for
building other packages which use import path with
-%{import_path} prefix.
-%endif
-
-%if 0%{?with_unit_test} && 0%{?with_devel}
-%package unit-test
-Summary: Unit tests for %{name} package
-# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
-BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
-
-%if 0%{?with_check}
-#Here comes all BuildRequires: PACKAGE the unit tests
-#in %%check section need for running
-%endif
-
-# test subpackage tests code from devel subpackage
-Requires: %{name}-devel = %{version}-%{release}
-
-%description unit-test
-%{summary}
-
-This package contains unit tests for project
-providing packages with %{import_path} prefix.
-%endif
+%{gobaseipath} prefix.
%prep
-%setup -q -n %{repo}-%{commit}
+%gosetup
%patch0 -p1
-%build
-
%install
-# source codes for building projects
-%if 0%{?with_devel}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list
-# find all *.go but no *_test.go files and generate devel.file-list
-for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do
- echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> devel.file-list
-done
-cp -pav lmdb.h %{buildroot}/%{gopath}/src/%{import_path}/
-echo "%%{gopath}/src/%%{import_path}/lmdb.h" >> devel.file-list
-cp -pav midl.h %{buildroot}/%{gopath}/src/%{import_path}/
-echo "%%{gopath}/src/%%{import_path}/midl.h" >> devel.file-list
-%endif
-
-# testing files for this project
-%if 0%{?with_unit_test} && 0%{?with_devel}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-# find all *_test.go files and generate unit-test.file-list
-for file in $(find . -iname "*_test.go"); do
- echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> unit-test.file-list
-done
-%endif
-
-%if 0%{?with_devel}
-sort -u -o devel.file-list devel.file-list
-%endif
+%goinstall
%check
-%if 0%{?with_check} && 0%{?with_unit_test} && 0%{?with_devel}
-%if ! 0%{?with_bundled}
-export GOPATH=%{buildroot}/%{gopath}:%{gopath}
-%else
-export GOPATH=%{buildroot}/%{gopath}:$(pwd)/Godeps/_workspace:%{gopath}
-%endif
-
-%if ! 0%{?gotest:1}
-%global gotest go test
-%endif
-
-%gotest %{import_path}
-%endif
+%gochecks %{gobaseipath}
#define license tag if not already defined
%{!?_licensedir:%global license %doc}
-%if 0%{?with_devel}
%files devel -f devel.file-list
%license LICENSE
%doc README.md
-%dir %{gopath}/src/%{provider}.%{provider_tld}/%{project}
-%endif
-
-%if 0%{?with_unit_test} && 0%{?with_devel}
-%files unit-test -f unit-test.file-list
-%license LICENSE
-%doc README.md
-%endif
%changelog
+* Mon Feb 26 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.12.20150106git151f2e0
+- Autogenerate some parts using the new macros
+
* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0-0.11.git151f2e0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
@@ -194,5 +89,3 @@ export GOPATH=%{buildroot}/%{gopath}:$(pwd)/Godeps/_workspace:%{gopath}
* Wed Apr 15 2015 jchaloup <jchaloup(a)redhat.com> - 0-0.1.git151f2e0
- First package for Fedora
resolves: #1212046
-
-
5 years, 11 months
Architecture specific change in rpms/golang-github-armon-gomdb.git
by githook-noreply@fedoraproject.org
The package rpms/golang-github-armon-gomdb.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/golang-github-armon-gomdb.git/com....
Change:
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
Thanks.
Full change:
============
commit 80bdc4e48a481198bbb776cce83aaf2144b529bd
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Fri Jun 8 17:24:33 2018 +0200
Upload glide.lock and glide.yam
diff --git a/glide.lock b/glide.lock
new file mode 100644
index 0000000..3e83805
--- /dev/null
+++ b/glide.lock
@@ -0,0 +1,3 @@
+hash: 8a4056934264560be4261a4558efec0f3478cafddbcd771b1a54aa362c436fe1
+imports: []
+updated: '2018-06-08T15:16:13.496974+00:00'
diff --git a/glide.yaml b/glide.yaml
new file mode 100644
index 0000000..29f0db9
--- /dev/null
+++ b/glide.yaml
@@ -0,0 +1,3 @@
+import: []
+package: github.com/armon/gomdb
+
diff --git a/golang-github-armon-gomdb.spec b/golang-github-armon-gomdb.spec
index 2d50590..2020196 100644
--- a/golang-github-armon-gomdb.spec
+++ b/golang-github-armon-gomdb.spec
@@ -11,6 +11,8 @@ Summary: Go wrapper for LMDB - OpenLDAP Lightning Memory-Mapped Database
License: BSD
URL: %{gourl}
Source0: %{gosource}
+Source1: glide.lock
+Source2: glide.yaml
Patch0: use-system-lmdb.patch
%description
@@ -33,9 +35,10 @@ building other packages which use import path with
%prep
%gosetup
%patch0 -p1
+cp %{SOURCE1} %{SOURCE2} .
%install
-%goinstall
+%goinstall glide.lock glide.yaml
%check
%gochecks -d .
@@ -50,6 +53,7 @@ building other packages which use import path with
%changelog
* Fri Jun 08 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.13.git.git151f2e0
- Update to spec 3.0
+ Upload glide.lock and glide.yaml
* Mon Feb 26 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.12.20150106git151f2e0
- Autogenerate some parts using the new macros
commit 11366978c96e97ea73915aed49b0319f820db747
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Fri Jun 8 17:15:00 2018 +0200
Update to spec 3.0
diff --git a/.gitignore b/.gitignore
index 69c6b30..607e92e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-/gomdb-151f2e0.tar.gz
+/gomdb-151f2e08ef45cb0e57d694b2562f351955dff572.tar.gz
diff --git a/golang-github-armon-gomdb.spec b/golang-github-armon-gomdb.spec
index 544faba..2d50590 100644
--- a/golang-github-armon-gomdb.spec
+++ b/golang-github-armon-gomdb.spec
@@ -1,14 +1,12 @@
# https://github.com/armon/gomdb
-%global provider_prefix github.com/armon/gomdb
-%global gobaseipath %{provider_prefix}
+%global goipath github.com/armon/gomdb
%global commit 151f2e08ef45cb0e57d694b2562f351955dff572
-%global commitdate 20150106
-%gocraftmeta -i
+%gometa -i
Name: %{goname}
Version: 0
-Release: 0.12.%{commitdate}git%{shortcommit}%{?dist}
+Release: 0.13.git%{?dist}
Summary: Go wrapper for LMDB - OpenLDAP Lightning Memory-Mapped Database
License: BSD
URL: %{gourl}
@@ -40,7 +38,7 @@ building other packages which use import path with
%goinstall
%check
-%gochecks %{gobaseipath}
+%gochecks -d .
#define license tag if not already defined
%{!?_licensedir:%global license %doc}
@@ -50,6 +48,9 @@ building other packages which use import path with
%doc README.md
%changelog
+* Fri Jun 08 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.13.git.git151f2e0
+- Update to spec 3.0
+
* Mon Feb 26 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.12.20150106git151f2e0
- Autogenerate some parts using the new macros
diff --git a/sources b/sources
index 738e103..ff23d6b 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-bef94b43aae605157979a041d2655b43 gomdb-151f2e0.tar.gz
+SHA512 (gomdb-151f2e08ef45cb0e57d694b2562f351955dff572.tar.gz) = f8f0268b49a091166302440ee34e40ff89a4c6adacfcd2daa62161a04f8ebe2a5e66074c125afa40147eba7493ce5fd5fb75e33b3955ef9f0f836ecc409603a3
commit 726d9ce8d436c5f744d812746c179e35ef3220ad
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Mon Feb 26 12:52:19 2018 +0100
Autogenerate some parts using the new macros
diff --git a/golang-github-armon-gomdb.spec b/golang-github-armon-gomdb.spec
index 872166b..544faba 100644
--- a/golang-github-armon-gomdb.spec
+++ b/golang-github-armon-gomdb.spec
@@ -1,163 +1,58 @@
-%if 0%{?fedora} || 0%{?rhel} == 6
-%global with_devel 1
-%global with_bundled 0
-%global with_debug 0
-%global with_check 1
-%global with_unit_test 1
-%else
-%global with_devel 0
-%global with_bundled 0
-%global with_debug 0
-%global with_check 0
-%global with_unit_test 0
-%endif
-
-%if 0%{?with_debug}
-%global _dwz_low_mem_die_limit 0
-%else
-%global debug_package %{nil}
-%endif
-
-%global provider github
-%global provider_tld com
-%global project armon
-%global repo gomdb
# https://github.com/armon/gomdb
-%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
-%global import_path %{provider_prefix}
+%global provider_prefix github.com/armon/gomdb
+%global gobaseipath %{provider_prefix}
%global commit 151f2e08ef45cb0e57d694b2562f351955dff572
-%global shortcommit %(c=%{commit}; echo ${c:0:7})
+%global commitdate 20150106
-Name: golang-%{provider}-%{project}-%{repo}
+%gocraftmeta -i
+
+Name: %{goname}
Version: 0
-Release: 0.11.git%{shortcommit}%{?dist}
-Summary: Go wrapper for LMDB - OpenLDAP Lightning Memory-Mapped Database
+Release: 0.12.%{commitdate}git%{shortcommit}%{?dist}
+Summary: Go wrapper for LMDB - OpenLDAP Lightning Memory-Mapped Database
License: BSD
-URL: https://%{provider_prefix}
-Source0: https://%{provider_prefix}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz
+URL: %{gourl}
+Source0: %{gosource}
Patch0: use-system-lmdb.patch
-# e.g. el6 has ppc64 arch without gcc-go, so EA tag is required
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
-# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
-BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
-
%description
%{summary}
-%if 0%{?with_devel}
%package devel
Summary: %{summary}
BuildArch: noarch
-Requires: lmdb-devel
-%if 0%{?with_check}
BuildRequires: lmdb-devel
-%endif
-
-Provides: golang(%{import_path}) = %{version}-%{release}
+Requires: lmdb-devel
%description devel
%{summary}
This package contains library source intended for
building other packages which use import path with
-%{import_path} prefix.
-%endif
-
-%if 0%{?with_unit_test} && 0%{?with_devel}
-%package unit-test
-Summary: Unit tests for %{name} package
-# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
-BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
-
-%if 0%{?with_check}
-#Here comes all BuildRequires: PACKAGE the unit tests
-#in %%check section need for running
-%endif
-
-# test subpackage tests code from devel subpackage
-Requires: %{name}-devel = %{version}-%{release}
-
-%description unit-test
-%{summary}
-
-This package contains unit tests for project
-providing packages with %{import_path} prefix.
-%endif
+%{gobaseipath} prefix.
%prep
-%setup -q -n %{repo}-%{commit}
+%gosetup
%patch0 -p1
-%build
-
%install
-# source codes for building projects
-%if 0%{?with_devel}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list
-# find all *.go but no *_test.go files and generate devel.file-list
-for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do
- echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> devel.file-list
-done
-cp -pav lmdb.h %{buildroot}/%{gopath}/src/%{import_path}/
-echo "%%{gopath}/src/%%{import_path}/lmdb.h" >> devel.file-list
-cp -pav midl.h %{buildroot}/%{gopath}/src/%{import_path}/
-echo "%%{gopath}/src/%%{import_path}/midl.h" >> devel.file-list
-%endif
-
-# testing files for this project
-%if 0%{?with_unit_test} && 0%{?with_devel}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-# find all *_test.go files and generate unit-test.file-list
-for file in $(find . -iname "*_test.go"); do
- echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> unit-test.file-list
-done
-%endif
-
-%if 0%{?with_devel}
-sort -u -o devel.file-list devel.file-list
-%endif
+%goinstall
%check
-%if 0%{?with_check} && 0%{?with_unit_test} && 0%{?with_devel}
-%if ! 0%{?with_bundled}
-export GOPATH=%{buildroot}/%{gopath}:%{gopath}
-%else
-export GOPATH=%{buildroot}/%{gopath}:$(pwd)/Godeps/_workspace:%{gopath}
-%endif
-
-%if ! 0%{?gotest:1}
-%global gotest go test
-%endif
-
-%gotest %{import_path}
-%endif
+%gochecks %{gobaseipath}
#define license tag if not already defined
%{!?_licensedir:%global license %doc}
-%if 0%{?with_devel}
%files devel -f devel.file-list
%license LICENSE
%doc README.md
-%dir %{gopath}/src/%{provider}.%{provider_tld}/%{project}
-%endif
-
-%if 0%{?with_unit_test} && 0%{?with_devel}
-%files unit-test -f unit-test.file-list
-%license LICENSE
-%doc README.md
-%endif
%changelog
+* Mon Feb 26 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.12.20150106git151f2e0
+- Autogenerate some parts using the new macros
+
* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0-0.11.git151f2e0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
@@ -194,5 +89,3 @@ export GOPATH=%{buildroot}/%{gopath}:$(pwd)/Godeps/_workspace:%{gopath}
* Wed Apr 15 2015 jchaloup <jchaloup(a)redhat.com> - 0-0.1.git151f2e0
- First package for Fedora
resolves: #1212046
-
-
commit 964e224f23f4b249d41362f22467ab1888e77198
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Wed Feb 7 13:58:16 2018 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/golang-github-armon-gomdb.spec b/golang-github-armon-gomdb.spec
index 2ccb183..872166b 100644
--- a/golang-github-armon-gomdb.spec
+++ b/golang-github-armon-gomdb.spec
@@ -30,7 +30,7 @@
Name: golang-%{provider}-%{project}-%{repo}
Version: 0
-Release: 0.10.git%{shortcommit}%{?dist}
+Release: 0.11.git%{shortcommit}%{?dist}
Summary: Go wrapper for LMDB - OpenLDAP Lightning Memory-Mapped Database
License: BSD
URL: https://%{provider_prefix}
@@ -158,6 +158,9 @@ export GOPATH=%{buildroot}/%{gopath}:$(pwd)/Godeps/_workspace:%{gopath}
%endif
%changelog
+* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0-0.11.git151f2e0
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
* Wed Aug 02 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 0-0.10.git151f2e0
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
5 years, 11 months
Architecture specific change in rpms/golang-github-armon-circbuf.git
by githook-noreply@fedoraproject.org
The package rpms/golang-github-armon-circbuf.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/golang-github-armon-circbuf.git/c....
Change:
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
Thanks.
Full change:
============
commit f425835a91e08ab81c715f322fe631df4a494a86
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Fri Jun 8 16:03:58 2018 +0200
Upload glide.lock and glide.yaml
diff --git a/glide.lock b/glide.lock
new file mode 100644
index 0000000..2048669
--- /dev/null
+++ b/glide.lock
@@ -0,0 +1,3 @@
+hash: e6fc63d93507e3d040a07664d8139aa79b1ffb0f51981f8731a66820f0b33b40
+imports: []
+updated: '2018-06-08T14:01:11.608406+00:00'
diff --git a/glide.yaml b/glide.yaml
new file mode 100644
index 0000000..027c3af
--- /dev/null
+++ b/glide.yaml
@@ -0,0 +1,3 @@
+import: []
+package: github.com/armon/circbuf
+
diff --git a/golang-github-armon-circbuf.spec b/golang-github-armon-circbuf.spec
index 882fa3d..587e583 100644
--- a/golang-github-armon-circbuf.spec
+++ b/golang-github-armon-circbuf.spec
@@ -11,6 +11,8 @@ Summary: Golang circular (ring) buffer
License: MIT
URL: %{gourl}
Source0: %{gosource}
+Source1: glide.lock
+Source2: glide.yaml
%description
%{summary}
@@ -28,17 +30,15 @@ building other packages which use import path with
%prep
%gosetup
+cp %{SOURCE1} %{SOURCE2} .
%install
-%goinstall
+%goinstall glide.lock glide.yaml
chmod -x LICENSE
%check
%gochecks
-#define license tag if not already defined
-%{!?_licensedir:%global license %doc}
-
%files devel -f devel.file-list
%license LICENSE
%doc README.md
@@ -46,6 +46,7 @@ chmod -x LICENSE
%changelog
* Fri Jun 08 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.14.git.gitbbbad09
- Update to spec 3.0
+ Upload glide.lock and glide.yaml
* Mon Feb 26 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.13.20150827gitbbbad09
- Autogenerate some parts using the new macros
commit 1d4b33d72bb3f8f4c99114cf625e3968cb3a3f07
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Fri Jun 8 15:59:44 2018 +0200
Update to spec 3.0
diff --git a/.gitignore b/.gitignore
index e6bd144..cfaf437 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-/circbuf-bbbad09.tar.gz
+/circbuf-bbbad097214e2918d8543d5201d12bfd7bca254d.tar.gz
diff --git a/golang-github-armon-circbuf.spec b/golang-github-armon-circbuf.spec
index 74806a3..882fa3d 100644
--- a/golang-github-armon-circbuf.spec
+++ b/golang-github-armon-circbuf.spec
@@ -1,14 +1,12 @@
# https://github.com/armon/circbuf
-%global provider_prefix github.com/armon/circbuf
-%global gobaseipath %{provider_prefix}
+%global goipath github.com/armon/circbuf
%global commit bbbad097214e2918d8543d5201d12bfd7bca254d
-%global commitdate 20150827
-%gocraftmeta -i
+%gometa -i
Name: %{goname}
Version: 0
-Release: 0.13.%{commitdate}git%{shortcommit}%{?dist}
+Release: 0.14.git%{?dist}
Summary: Golang circular (ring) buffer
License: MIT
URL: %{gourl}
@@ -26,7 +24,7 @@ BuildArch: noarch
This package contains library source intended for
building other packages which use import path with
-%{gobaseipath} prefix.
+%{goipath} prefix.
%prep
%gosetup
@@ -46,6 +44,9 @@ chmod -x LICENSE
%doc README.md
%changelog
+* Fri Jun 08 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.14.git.gitbbbad09
+- Update to spec 3.0
+
* Mon Feb 26 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.13.20150827gitbbbad09
- Autogenerate some parts using the new macros
diff --git a/sources b/sources
index 68a5b5b..a691d9a 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-7df18e0a7647cd27b8822082d038c828 circbuf-bbbad09.tar.gz
+SHA512 (circbuf-bbbad097214e2918d8543d5201d12bfd7bca254d.tar.gz) = a97ff3d2df6961bd0a365872d844c8d1af2835c03aa832a2cf52b65b134c70044acf6629268e98df13c0c566cf0145e6080be9283b2e0dd1b18274e4636ca55a
commit a422c1e41e9c7d5cc29d9acd94811457f0236520
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Mon Feb 26 12:27:32 2018 +0100
Autogenerate some parts using the new macros
diff --git a/golang-github-armon-circbuf.spec b/golang-github-armon-circbuf.spec
index 83e079f..74806a3 100644
--- a/golang-github-armon-circbuf.spec
+++ b/golang-github-armon-circbuf.spec
@@ -1,156 +1,54 @@
-%if 0%{?fedora} || 0%{?rhel} == 6
-%global with_devel 1
-%global with_bundled 0
-%global with_debug 0
-%global with_check 1
-%global with_unit_test 1
-%else
-%global with_devel 0
-%global with_bundled 0
-%global with_debug 0
-%global with_check 0
-%global with_unit_test 0
-%endif
-
-%if 0%{?with_debug}
-%global _dwz_low_mem_die_limit 0
-%else
-%global debug_package %{nil}
-%endif
-
-%global provider github
-%global provider_tld com
-%global project armon
-%global repo circbuf
# https://github.com/armon/circbuf
-%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
-%global import_path %{provider_prefix}
+%global provider_prefix github.com/armon/circbuf
+%global gobaseipath %{provider_prefix}
%global commit bbbad097214e2918d8543d5201d12bfd7bca254d
-%global shortcommit %(c=%{commit}; echo ${c:0:7})
+%global commitdate 20150827
-Name: golang-%{provider}-%{project}-%{repo}
+%gocraftmeta -i
+
+Name: %{goname}
Version: 0
-Release: 0.12.git%{shortcommit}%{?dist}
-Summary: Golang circular (ring) buffer
+Release: 0.13.%{commitdate}git%{shortcommit}%{?dist}
+Summary: Golang circular (ring) buffer
License: MIT
-URL: https://%{provider_prefix}
-Source0: https://%{provider_prefix}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz
-
-# e.g. el6 has ppc64 arch without gcc-go, so EA tag is required
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
-# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
-BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
+URL: %{gourl}
+Source0: %{gosource}
%description
%{summary}
-%if 0%{?with_devel}
%package devel
Summary: %{summary}
BuildArch: noarch
-%if 0%{?with_check}
-%endif
-
-Provides: golang(%{import_path}) = %{version}-%{release}
-
%description devel
%{summary}
This package contains library source intended for
building other packages which use import path with
-%{import_path} prefix.
-%endif
-
-%if 0%{?with_unit_test} && 0%{?with_devel}
-%package unit-test
-Summary: Unit tests for %{name} package
-# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
-BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
-
-%if 0%{?with_check}
-#Here comes all BuildRequires: PACKAGE the unit tests
-#in %%check section need for running
-%endif
-
-# test subpackage tests code from devel subpackage
-Requires: %{name}-devel = %{version}-%{release}
-
-%description unit-test
-%{summary}
-
-This package contains unit tests for project
-providing packages with %{import_path} prefix.
-%endif
+%{gobaseipath} prefix.
%prep
-%setup -q -n %{repo}-%{commit}
-
-%build
+%gosetup
%install
-# source codes for building projects
-%if 0%{?with_devel}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list
-# find all *.go but no *_test.go files and generate devel.file-list
-for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do
- echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> devel.file-list
-done
+%goinstall
chmod -x LICENSE
-%endif
-
-# testing files for this project
-%if 0%{?with_unit_test} && 0%{?with_devel}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-# find all *_test.go files and generate unit-test.file-list
-for file in $(find . -iname "*_test.go"); do
- echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> unit-test.file-list
-done
-%endif
-
-%if 0%{?with_devel}
-sort -u -o devel.file-list devel.file-list
-%endif
%check
-%if 0%{?with_check} && 0%{?with_unit_test} && 0%{?with_devel}
-%if ! 0%{?with_bundled}
-export GOPATH=%{buildroot}/%{gopath}:%{gopath}
-%else
-export GOPATH=%{buildroot}/%{gopath}:$(pwd)/Godeps/_workspace:%{gopath}
-%endif
-
-%if ! 0%{?gotest:1}
-%global gotest go test
-%endif
-
-%gotest %{import_path}
-%endif
+%gochecks
#define license tag if not already defined
%{!?_licensedir:%global license %doc}
-%if 0%{?with_devel}
%files devel -f devel.file-list
%license LICENSE
%doc README.md
-%dir %{gopath}/src/%{provider}.%{provider_tld}/%{project}
-%endif
-
-%if 0%{?with_unit_test} && 0%{?with_devel}
-%files unit-test -f unit-test.file-list
-%license LICENSE
-%doc README.md
-%endif
%changelog
+* Mon Feb 26 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.13.20150827gitbbbad09
+- Autogenerate some parts using the new macros
+
* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0-0.12.gitbbbad09
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
@@ -191,6 +89,3 @@ export GOPATH=%{buildroot}/%{gopath}:$(pwd)/Godeps/_workspace:%{gopath}
* Wed Apr 15 2015 jchaloup <jchaloup(a)redhat.com> - 0-0.1.gitf092b4f
- First package for Fedora
resolves: #1211985
-
-
-
5 years, 11 months
Architecture specific change in rpms/golang-github-armon-circbuf.git
by githook-noreply@fedoraproject.org
The package rpms/golang-github-armon-circbuf.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/golang-github-armon-circbuf.git/c....
Change:
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
Thanks.
Full change:
============
commit f425835a91e08ab81c715f322fe631df4a494a86
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Fri Jun 8 16:03:58 2018 +0200
Upload glide.lock and glide.yaml
diff --git a/glide.lock b/glide.lock
new file mode 100644
index 0000000..2048669
--- /dev/null
+++ b/glide.lock
@@ -0,0 +1,3 @@
+hash: e6fc63d93507e3d040a07664d8139aa79b1ffb0f51981f8731a66820f0b33b40
+imports: []
+updated: '2018-06-08T14:01:11.608406+00:00'
diff --git a/glide.yaml b/glide.yaml
new file mode 100644
index 0000000..027c3af
--- /dev/null
+++ b/glide.yaml
@@ -0,0 +1,3 @@
+import: []
+package: github.com/armon/circbuf
+
diff --git a/golang-github-armon-circbuf.spec b/golang-github-armon-circbuf.spec
index 882fa3d..587e583 100644
--- a/golang-github-armon-circbuf.spec
+++ b/golang-github-armon-circbuf.spec
@@ -11,6 +11,8 @@ Summary: Golang circular (ring) buffer
License: MIT
URL: %{gourl}
Source0: %{gosource}
+Source1: glide.lock
+Source2: glide.yaml
%description
%{summary}
@@ -28,17 +30,15 @@ building other packages which use import path with
%prep
%gosetup
+cp %{SOURCE1} %{SOURCE2} .
%install
-%goinstall
+%goinstall glide.lock glide.yaml
chmod -x LICENSE
%check
%gochecks
-#define license tag if not already defined
-%{!?_licensedir:%global license %doc}
-
%files devel -f devel.file-list
%license LICENSE
%doc README.md
@@ -46,6 +46,7 @@ chmod -x LICENSE
%changelog
* Fri Jun 08 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.14.git.gitbbbad09
- Update to spec 3.0
+ Upload glide.lock and glide.yaml
* Mon Feb 26 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.13.20150827gitbbbad09
- Autogenerate some parts using the new macros
commit 1d4b33d72bb3f8f4c99114cf625e3968cb3a3f07
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Fri Jun 8 15:59:44 2018 +0200
Update to spec 3.0
diff --git a/.gitignore b/.gitignore
index e6bd144..cfaf437 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-/circbuf-bbbad09.tar.gz
+/circbuf-bbbad097214e2918d8543d5201d12bfd7bca254d.tar.gz
diff --git a/golang-github-armon-circbuf.spec b/golang-github-armon-circbuf.spec
index 74806a3..882fa3d 100644
--- a/golang-github-armon-circbuf.spec
+++ b/golang-github-armon-circbuf.spec
@@ -1,14 +1,12 @@
# https://github.com/armon/circbuf
-%global provider_prefix github.com/armon/circbuf
-%global gobaseipath %{provider_prefix}
+%global goipath github.com/armon/circbuf
%global commit bbbad097214e2918d8543d5201d12bfd7bca254d
-%global commitdate 20150827
-%gocraftmeta -i
+%gometa -i
Name: %{goname}
Version: 0
-Release: 0.13.%{commitdate}git%{shortcommit}%{?dist}
+Release: 0.14.git%{?dist}
Summary: Golang circular (ring) buffer
License: MIT
URL: %{gourl}
@@ -26,7 +24,7 @@ BuildArch: noarch
This package contains library source intended for
building other packages which use import path with
-%{gobaseipath} prefix.
+%{goipath} prefix.
%prep
%gosetup
@@ -46,6 +44,9 @@ chmod -x LICENSE
%doc README.md
%changelog
+* Fri Jun 08 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.14.git.gitbbbad09
+- Update to spec 3.0
+
* Mon Feb 26 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.13.20150827gitbbbad09
- Autogenerate some parts using the new macros
diff --git a/sources b/sources
index 68a5b5b..a691d9a 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-7df18e0a7647cd27b8822082d038c828 circbuf-bbbad09.tar.gz
+SHA512 (circbuf-bbbad097214e2918d8543d5201d12bfd7bca254d.tar.gz) = a97ff3d2df6961bd0a365872d844c8d1af2835c03aa832a2cf52b65b134c70044acf6629268e98df13c0c566cf0145e6080be9283b2e0dd1b18274e4636ca55a
commit a422c1e41e9c7d5cc29d9acd94811457f0236520
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Mon Feb 26 12:27:32 2018 +0100
Autogenerate some parts using the new macros
diff --git a/golang-github-armon-circbuf.spec b/golang-github-armon-circbuf.spec
index 83e079f..74806a3 100644
--- a/golang-github-armon-circbuf.spec
+++ b/golang-github-armon-circbuf.spec
@@ -1,156 +1,54 @@
-%if 0%{?fedora} || 0%{?rhel} == 6
-%global with_devel 1
-%global with_bundled 0
-%global with_debug 0
-%global with_check 1
-%global with_unit_test 1
-%else
-%global with_devel 0
-%global with_bundled 0
-%global with_debug 0
-%global with_check 0
-%global with_unit_test 0
-%endif
-
-%if 0%{?with_debug}
-%global _dwz_low_mem_die_limit 0
-%else
-%global debug_package %{nil}
-%endif
-
-%global provider github
-%global provider_tld com
-%global project armon
-%global repo circbuf
# https://github.com/armon/circbuf
-%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
-%global import_path %{provider_prefix}
+%global provider_prefix github.com/armon/circbuf
+%global gobaseipath %{provider_prefix}
%global commit bbbad097214e2918d8543d5201d12bfd7bca254d
-%global shortcommit %(c=%{commit}; echo ${c:0:7})
+%global commitdate 20150827
-Name: golang-%{provider}-%{project}-%{repo}
+%gocraftmeta -i
+
+Name: %{goname}
Version: 0
-Release: 0.12.git%{shortcommit}%{?dist}
-Summary: Golang circular (ring) buffer
+Release: 0.13.%{commitdate}git%{shortcommit}%{?dist}
+Summary: Golang circular (ring) buffer
License: MIT
-URL: https://%{provider_prefix}
-Source0: https://%{provider_prefix}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz
-
-# e.g. el6 has ppc64 arch without gcc-go, so EA tag is required
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 %{arm}}
-# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
-BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
+URL: %{gourl}
+Source0: %{gosource}
%description
%{summary}
-%if 0%{?with_devel}
%package devel
Summary: %{summary}
BuildArch: noarch
-%if 0%{?with_check}
-%endif
-
-Provides: golang(%{import_path}) = %{version}-%{release}
-
%description devel
%{summary}
This package contains library source intended for
building other packages which use import path with
-%{import_path} prefix.
-%endif
-
-%if 0%{?with_unit_test} && 0%{?with_devel}
-%package unit-test
-Summary: Unit tests for %{name} package
-# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
-BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
-
-%if 0%{?with_check}
-#Here comes all BuildRequires: PACKAGE the unit tests
-#in %%check section need for running
-%endif
-
-# test subpackage tests code from devel subpackage
-Requires: %{name}-devel = %{version}-%{release}
-
-%description unit-test
-%{summary}
-
-This package contains unit tests for project
-providing packages with %{import_path} prefix.
-%endif
+%{gobaseipath} prefix.
%prep
-%setup -q -n %{repo}-%{commit}
-
-%build
+%gosetup
%install
-# source codes for building projects
-%if 0%{?with_devel}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list
-# find all *.go but no *_test.go files and generate devel.file-list
-for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do
- echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> devel.file-list
-done
+%goinstall
chmod -x LICENSE
-%endif
-
-# testing files for this project
-%if 0%{?with_unit_test} && 0%{?with_devel}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-# find all *_test.go files and generate unit-test.file-list
-for file in $(find . -iname "*_test.go"); do
- echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> unit-test.file-list
-done
-%endif
-
-%if 0%{?with_devel}
-sort -u -o devel.file-list devel.file-list
-%endif
%check
-%if 0%{?with_check} && 0%{?with_unit_test} && 0%{?with_devel}
-%if ! 0%{?with_bundled}
-export GOPATH=%{buildroot}/%{gopath}:%{gopath}
-%else
-export GOPATH=%{buildroot}/%{gopath}:$(pwd)/Godeps/_workspace:%{gopath}
-%endif
-
-%if ! 0%{?gotest:1}
-%global gotest go test
-%endif
-
-%gotest %{import_path}
-%endif
+%gochecks
#define license tag if not already defined
%{!?_licensedir:%global license %doc}
-%if 0%{?with_devel}
%files devel -f devel.file-list
%license LICENSE
%doc README.md
-%dir %{gopath}/src/%{provider}.%{provider_tld}/%{project}
-%endif
-
-%if 0%{?with_unit_test} && 0%{?with_devel}
-%files unit-test -f unit-test.file-list
-%license LICENSE
-%doc README.md
-%endif
%changelog
+* Mon Feb 26 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.13.20150827gitbbbad09
+- Autogenerate some parts using the new macros
+
* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0-0.12.gitbbbad09
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
@@ -191,6 +89,3 @@ export GOPATH=%{buildroot}/%{gopath}:$(pwd)/Godeps/_workspace:%{gopath}
* Wed Apr 15 2015 jchaloup <jchaloup(a)redhat.com> - 0-0.1.gitf092b4f
- First package for Fedora
resolves: #1211985
-
-
-
commit d03baae35e89bde29f5024c65b6001bc38e23bd9
Author: Fedora Release Engineering <releng(a)fedoraproject.org>
Date: Wed Feb 7 13:57:32 2018 +0000
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng(a)fedoraproject.org>
diff --git a/golang-github-armon-circbuf.spec b/golang-github-armon-circbuf.spec
index 8a8ef0a..83e079f 100644
--- a/golang-github-armon-circbuf.spec
+++ b/golang-github-armon-circbuf.spec
@@ -30,7 +30,7 @@
Name: golang-%{provider}-%{project}-%{repo}
Version: 0
-Release: 0.11.git%{shortcommit}%{?dist}
+Release: 0.12.git%{shortcommit}%{?dist}
Summary: Golang circular (ring) buffer
License: MIT
URL: https://%{provider_prefix}
@@ -151,6 +151,9 @@ export GOPATH=%{buildroot}/%{gopath}:$(pwd)/Godeps/_workspace:%{gopath}
%endif
%changelog
+* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0-0.12.gitbbbad09
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
* Wed Aug 02 2017 Fedora Release Engineering <releng(a)fedoraproject.org> - 0-0.11.gitbbbad09
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
5 years, 11 months
Architecture specific change in rpms/mongodb.git
by githook-noreply@fedoraproject.org
The package rpms/mongodb.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/mongodb.git/commit/?id=a1f26e6c71....
Change:
-%ifnarch %{upstream_arches}
Thanks.
Full change:
============
commit d9f058a9bf1e084b4de42c092e49f126f408d8b4
Author: Marek Skalický <mskalick(a)redhat.com>
Date: Fri Jun 8 15:17:12 2018 +0200
Bump version
diff --git a/mongodb.spec b/mongodb.spec
index 5e84d33..4b889d1 100644
--- a/mongodb.spec
+++ b/mongodb.spec
@@ -41,7 +41,7 @@
Name: mongodb
Version: 3.6.4
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: High-performance, schema-free document-oriented database
Group: Applications/Databases
License: AGPLv3 and zlib and ASL 2.0
@@ -562,6 +562,9 @@ fi
%changelog
+* Fri Jun 08 2018 mskalick(a)redhat.com - 3.6.4-3
+- Use bundled mozjs-45 on all architecture
+
* Wed May 16 2018 mskalick(a)redhat.com - 3.6.4-2
- Use upstream reworked patch for altivec and new gcc
commit a1f26e6c71e4c3fa269573183e011ce73cfa05c2
Author: Marek Skalický <mskalick(a)redhat.com>
Date: Fri Jun 8 15:05:33 2018 +0200
Use bundled mozjs45 on all architectures
- carry patch with generated mozjs45 config and sources for i686,
ppc64 and arm architectures
(see private-mskalick-mozjs_gen branch for spec used to generate
patch)
diff --git a/mongodb.spec b/mongodb.spec
index 64d57fb..5e84d33 100644
--- a/mongodb.spec
+++ b/mongodb.spec
@@ -65,8 +65,8 @@ Source11: README
# Fix build system to allow building with system version of libraries (mozjs, icu and asio)
# - needed for building additional architectures
-# https://jira.mongodb.org/browse/SERVER-21353
-Patch0: use-system-mozjs-icu-asio.patch
+# https://jira.mongodb.org/browse/SERVER-21353 -> now patching bundled mozjs45 - see patch23
+#Patch0: use-system-mozjs-icu-asio.patch
# Convert build scripts and testsuite to support python3
# https://jira.mongodb.org/browse/SERVER-32295
@@ -89,7 +89,8 @@ Patch20: ppc64.patch
Patch22: ppc64-altivec.patch
# Add support also for 32bit platforms
Patch21: 32bit-support.patch
-
+# Generate code for ppc64, arm and i386 arches
+Patch23: ppc64-arm-i386-mozjs-code.patch
BuildRequires: gcc-c++ >= 5.3.0
BuildRequires: boost-devel >= 1.56
@@ -103,9 +104,6 @@ BuildRequires: python3-scons
BuildRequires: snappy-devel
BuildRequires: yaml-cpp-devel
BuildRequires: zlib-devel
-%ifnarch %{upstream_arches}
-BuildRequires: mozjs%{mozjsVersion}-devel
-%endif
BuildRequires: valgrind-devel
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
BuildRequires: systemd
@@ -172,10 +170,8 @@ Provides: bundled(icu) = 57.1
Provides: bundled(IntelRDFPMathLib) = 20U1
# https://github.com/derickr/timelib
Provides: bundled(timelib) = 2017.05beta10
-%ifarch %{upstream_arches}
# MongoDB does provides mozjs customization to recover from OOM
-Provides: bundled(mozjs45) = 45.5.0
-%endif
+Provides: bundled(mozjs45) = 45.8.0
%description server
This package provides the mongo server software, mongo sharding server
@@ -201,19 +197,19 @@ the MongoDB sources.
%setup -q -n %{MONGO_DISTNAME}
%patch1 -p1
%patch2 -p1
-%ifarch ppc64le ppc64
%patch3 -p1
-%endif
# Patch only Fedora specific architectures
%ifnarch %{upstream_arches}
-%patch0 -p1
%patch20 -p1
-%ifarch ppc64
%patch22 -p1
-%endif
%patch21 -p1
+%patch23 -p1
+
+# For mongodb <=3.6 mozjs sources are generated wrong
+sed -i -e "/extract\/js\/src\/jit\/ProcessExecutableMemory.cpp/d" src/third_party/mozjs-45/SConscript
%endif
+
# CRLF -> LF
sed -i 's/\r//' README
@@ -294,16 +290,11 @@ cat > build-options << EOF
%ifarch s390x
--use-s390x-crc32=off \
%endif
-%ifnarch %{upstream_arches}
- --use-system-mozjs \
- --js-engine=mozjs-%{mozjsVersion} \
-%endif
--ssl \
--nostrip \
--disable-warnings-as-errors \
--variables-files=variables.list
EOF
-# --use-system-asio \
# see output of "scons --help" for options
scons-3 core tools $(cat build-options)
diff --git a/ppc64-arm-i386-mozjs-code.patch b/ppc64-arm-i386-mozjs-code.patch
new file mode 100644
index 0000000..e36ba29
--- /dev/null
+++ b/ppc64-arm-i386-mozjs-code.patch
@@ -0,0 +1,7079 @@
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src0.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src0.cpp
+new file mode 100644
+index 0000000000..3392352d8b
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src0.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "asmjs/AsmJSFrameIterator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSFrameIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSFrameIterator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSLink.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSLink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSLink.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSModule.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSModule.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSModule.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSSignalHandlers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSSignalHandlers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSSignalHandlers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSValidate.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSValidate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSValidate.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/WasmGenerator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmGenerator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src1.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src1.cpp
+new file mode 100644
+index 0000000000..a6b717f374
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src1.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "asmjs/WasmIonCompile.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmIonCompile.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmIonCompile.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/WasmStubs.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmStubs.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmStubs.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/AtomicsObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/AtomicsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/AtomicsObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Eval.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Eval.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Eval.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Intl.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Intl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Intl.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/MapObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/MapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/MapObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src10.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src10.cpp
+new file mode 100644
+index 0000000000..8790c5fa8e
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src10.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/BaselineFrameInfo.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineFrameInfo.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineFrameInfo.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineInspector.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineInspector.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineInspector.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineJIT.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineJIT.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineJIT.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BitSet.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BitSet.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BitSet.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BytecodeAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BytecodeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BytecodeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src11.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src11.cpp
+new file mode 100644
+index 0000000000..39333e8bbd
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src11.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/C1Spewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/C1Spewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/C1Spewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/CodeGenerator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/CodeGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/CodeGenerator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/CompileWrappers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/CompileWrappers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/CompileWrappers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Disassembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Disassembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Disassembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/EagerSimdUnbox.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EagerSimdUnbox.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EagerSimdUnbox.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/EdgeCaseAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EdgeCaseAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EdgeCaseAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src12.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src12.cpp
+new file mode 100644
+index 0000000000..c2ccff74ad
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src12.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/EffectiveAddressAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EffectiveAddressAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EffectiveAddressAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/ExecutableAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ExecutableAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ExecutableAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/InstructionReordering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/InstructionReordering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/InstructionReordering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Ion.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Ion.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Ion.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonBuilder.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonBuilder.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonBuilder.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src13.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src13.cpp
+new file mode 100644
+index 0000000000..61225a9350
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src13.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/IonCaches.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonCaches.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonCaches.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonOptimizationLevels.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonOptimizationLevels.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonOptimizationLevels.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JSONSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JSONSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JSONSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitFrames.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitFrames.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitFrames.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitOptions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitOptions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitOptions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src14.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src14.cpp
+new file mode 100644
+index 0000000000..69f4d54cd5
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src14.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/JitcodeMap.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitcodeMap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitcodeMap.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LICM.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LICM.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LICM.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LIR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LIR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LoopUnroller.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LoopUnroller.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LoopUnroller.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Lowering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Lowering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Lowering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MCallOptimize.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MCallOptimize.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MCallOptimize.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src15.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src15.cpp
+new file mode 100644
+index 0000000000..544491554b
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src15.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/MIR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MIR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MIRGraph.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MIRGraph.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MIRGraph.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MoveResolver.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MoveResolver.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MoveResolver.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/OptimizationTracking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/OptimizationTracking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/OptimizationTracking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/PerfSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/PerfSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/PerfSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src16.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src16.cpp
+new file mode 100644
+index 0000000000..d8c2a53bb3
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src16.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/ProcessExecutableMemory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ProcessExecutableMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ProcessExecutableMemory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RangeAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RangeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RangeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Recover.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Recover.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Recover.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RegisterAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RegisterAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RegisterAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RematerializedFrame.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RematerializedFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RematerializedFrame.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Safepoints.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Safepoints.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Safepoints.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src17.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src17.cpp
+new file mode 100644
+index 0000000000..c0fda43387
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src17.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/ScalarReplacement.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ScalarReplacement.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ScalarReplacement.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/SharedIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/SharedIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/SharedIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Sink.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Sink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Sink.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Snapshots.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Snapshots.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Snapshots.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/StupidAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/StupidAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/StupidAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/TypePolicy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/TypePolicy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/TypePolicy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src18.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src18.cpp
+new file mode 100644
+index 0000000000..0f4d9527c3
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src18.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/TypedObjectPrediction.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/TypedObjectPrediction.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/TypedObjectPrediction.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/VMFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/VMFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/VMFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/ValueNumbering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ValueNumbering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ValueNumbering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/Architecture-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/Architecture-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/Architecture-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/Assembler-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/Assembler-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/Assembler-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/Bailouts-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/Bailouts-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/Bailouts-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src19.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src19.cpp
+new file mode 100644
+index 0000000000..60669a66ab
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src19.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/arm/BaselineCompiler-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/BaselineCompiler-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/BaselineCompiler-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/BaselineIC-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/BaselineIC-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/BaselineIC-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/CodeGenerator-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/CodeGenerator-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/CodeGenerator-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/Lowering-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/Lowering-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/Lowering-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/MacroAssembler-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/MacroAssembler-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/MacroAssembler-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/MoveEmitter-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/MoveEmitter-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/MoveEmitter-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src2.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src2.cpp
+new file mode 100644
+index 0000000000..f9ee5a1f37
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src2.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "builtin/ModuleObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/ModuleObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/ModuleObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Object.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Object.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Object.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Profilers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Profilers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Profilers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Reflect.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Reflect.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Reflect.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/ReflectParse.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/ReflectParse.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/ReflectParse.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/SIMD.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/SIMD.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/SIMD.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src20.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src20.cpp
+new file mode 100644
+index 0000000000..8f535341f5
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src20.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/arm/SharedIC-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/SharedIC-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/SharedIC-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/Trampoline-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/Trampoline-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/Trampoline-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/disasm/Constants-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/disasm/Constants-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/disasm/Constants-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/disasm/Disasm-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/disasm/Disasm-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/disasm/Disasm-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/shared/BaselineCompiler-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/BaselineCompiler-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/BaselineCompiler-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/shared/CodeGenerator-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/CodeGenerator-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/CodeGenerator-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src21.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src21.cpp
+new file mode 100644
+index 0000000000..c4d8192b3b
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src21.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/shared/Lowering-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/Lowering-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/Lowering-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsalloc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsalloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsalloc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsapi.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsapi.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsbool.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsbool.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsbool.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jscntxt.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jscntxt.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jscntxt.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jscompartment.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jscompartment.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jscompartment.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src22.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src22.cpp
+new file mode 100644
+index 0000000000..4014315c08
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src22.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsdate.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsdate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsdate.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsdtoa.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsdtoa.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsdtoa.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsexn.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsexn.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsexn.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsfriendapi.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsfriendapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsfriendapi.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsfun.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsfun.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsfun.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsgc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsgc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsgc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src23.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src23.cpp
+new file mode 100644
+index 0000000000..aba9fc0cb4
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src23.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsiter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsiter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsiter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsnativestack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsnativestack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsnativestack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsnum.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsnum.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsnum.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsobj.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsobj.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsobj.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "json.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "json.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "json.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsopcode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsopcode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsopcode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src24.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src24.cpp
+new file mode 100644
+index 0000000000..5a610ef6ac
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src24.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsprf.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsprf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsprf.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jspropertytree.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jspropertytree.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jspropertytree.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsscript.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsscript.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsscript.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsstr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsstr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsstr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jswatchpoint.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jswatchpoint.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jswatchpoint.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsweakmap.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsweakmap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsweakmap.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src25.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src25.cpp
+new file mode 100644
+index 0000000000..357fb8b6a9
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src25.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "perf/jsperf.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "perf/jsperf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "perf/jsperf.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/BaseProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/BaseProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/BaseProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/CrossCompartmentWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/CrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/CrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/DeadObjectProxy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/DeadObjectProxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/DeadObjectProxy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/DirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/DirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/DirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/OpaqueCrossCompartmentWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/OpaqueCrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/OpaqueCrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src26.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src26.cpp
+new file mode 100644
+index 0000000000..c9a4e53f85
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src26.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "proxy/Proxy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/Proxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/Proxy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/ScriptedDirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/ScriptedDirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/ScriptedDirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/ScriptedIndirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/ScriptedIndirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/ScriptedIndirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/SecurityWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/SecurityWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/SecurityWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/Wrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/Wrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/Wrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ArgumentsObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ArgumentsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ArgumentsObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src27.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src27.cpp
+new file mode 100644
+index 0000000000..aa66b36fb1
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src27.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/ArrayBufferObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ArrayBufferObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ArrayBufferObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/CallNonGenericMethod.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CallNonGenericMethod.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CallNonGenericMethod.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/CharacterEncoding.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CharacterEncoding.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CharacterEncoding.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/CodeCoverage.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CodeCoverage.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CodeCoverage.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Compression.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Compression.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Compression.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/DateTime.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/DateTime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/DateTime.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src28.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src28.cpp
+new file mode 100644
+index 0000000000..3d98b61795
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src28.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Debugger.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Debugger.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Debugger.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/DebuggerMemory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/DebuggerMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/DebuggerMemory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ErrorObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ErrorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ErrorObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ForOfIterator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ForOfIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ForOfIterator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/GeneratorObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/GeneratorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/GeneratorObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/GlobalObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/GlobalObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/GlobalObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src29.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src29.cpp
+new file mode 100644
+index 0000000000..86af1e7327
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src29.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/HelperThreads.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/HelperThreads.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/HelperThreads.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Id.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Id.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Id.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Interpreter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Interpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Interpreter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/JSONParser.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/JSONParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/JSONParser.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/MemoryMetrics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/MemoryMetrics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/MemoryMetrics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Monitor.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Monitor.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Monitor.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src3.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src3.cpp
+new file mode 100644
+index 0000000000..32bd1caa82
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src3.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "builtin/SymbolObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/SymbolObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/SymbolObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/TestingFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/TestingFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/TestingFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/TypedObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/TypedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/TypedObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/WeakMapObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/WeakMapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/WeakMapObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/WeakSetObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/WeakSetObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/WeakSetObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "devtools/sharkctl.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "devtools/sharkctl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "devtools/sharkctl.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src30.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src30.cpp
+new file mode 100644
+index 0000000000..9e43dfb736
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src30.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/NativeObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/NativeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/NativeObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ObjectGroup.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ObjectGroup.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ObjectGroup.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/PIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/PIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/PIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/PosixNSPR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/PosixNSPR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/PosixNSPR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Printer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Printer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Printer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Probes.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Probes.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Probes.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src31.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src31.cpp
+new file mode 100644
+index 0000000000..e4ac196768
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src31.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/ProxyObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ProxyObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ProxyObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ReceiverGuard.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ReceiverGuard.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ReceiverGuard.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/RegExpObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/RegExpObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/RegExpObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/RegExpStatics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/RegExpStatics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/RegExpStatics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Runtime.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Runtime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Runtime.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SPSProfiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SPSProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SPSProfiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src32.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src32.cpp
+new file mode 100644
+index 0000000000..a702a115ae
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src32.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/SavedStacks.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SavedStacks.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SavedStacks.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ScopeObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ScopeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ScopeObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SelfHosting.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SelfHosting.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SelfHosting.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Shape.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Shape.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Shape.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SharedArrayObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SharedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SharedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Stack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Stack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Stack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src33.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src33.cpp
+new file mode 100644
+index 0000000000..b106a07280
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src33.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Stopwatch.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Stopwatch.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Stopwatch.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/String.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/String.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/String.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/StringBuffer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/StringBuffer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/StringBuffer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/StructuredClone.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/StructuredClone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/StructuredClone.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Symbol.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Symbol.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Symbol.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/TaggedProto.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TaggedProto.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TaggedProto.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src34.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src34.cpp
+new file mode 100644
+index 0000000000..e66ddb3e8a
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src34.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Time.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Time.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Time.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/TypeInference.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TypeInference.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TypeInference.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/TypedArrayObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TypedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TypedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UbiNode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UbiNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UbiNode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UbiNodeCensus.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UbiNodeCensus.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UbiNodeCensus.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UnboxedObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UnboxedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UnboxedObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src35.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src35.cpp
+new file mode 100644
+index 0000000000..bcf3f00370
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src35.cpp
+@@ -0,0 +1,37 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Unicode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Unicode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Unicode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Value.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Value.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Value.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/WeakMapPtr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/WeakMapPtr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/WeakMapPtr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Xdr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Xdr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Xdr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src4.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src4.cpp
+new file mode 100644
+index 0000000000..44163573c9
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src4.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "ds/LifoAlloc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "ds/LifoAlloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "ds/LifoAlloc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/BytecodeCompiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/BytecodeCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/BytecodeCompiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/BytecodeEmitter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/BytecodeEmitter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/BytecodeEmitter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/FoldConstants.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/FoldConstants.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/FoldConstants.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/NameFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/NameFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/NameFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/ParseMaps.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/ParseMaps.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/ParseMaps.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src5.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src5.cpp
+new file mode 100644
+index 0000000000..4a056d0b55
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src5.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "frontend/ParseNode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/ParseNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/ParseNode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/TokenStream.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/TokenStream.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/TokenStream.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Allocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Allocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Allocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Barrier.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Barrier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Barrier.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/GCTrace.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/GCTrace.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/GCTrace.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Iteration.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Iteration.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Iteration.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src6.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src6.cpp
+new file mode 100644
+index 0000000000..2c0af2b856
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src6.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "gc/Marking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Marking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Marking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Memory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Memory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Memory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/MemoryProfiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/MemoryProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/MemoryProfiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Nursery.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Nursery.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Nursery.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/RootMarking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/RootMarking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/RootMarking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Statistics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Statistics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Statistics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src7.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src7.cpp
+new file mode 100644
+index 0000000000..edc5d0ddec
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src7.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "gc/Tracer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Tracer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Tracer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Verifier.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Verifier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Verifier.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Zone.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Zone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Zone.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/NativeRegExpMacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/NativeRegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/NativeRegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpAST.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpAST.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpAST.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpEngine.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpEngine.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpEngine.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src8.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src8.cpp
+new file mode 100644
+index 0000000000..4150698a38
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src8.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "irregexp/RegExpInterpreter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpInterpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpInterpreter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpMacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpParser.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpParser.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpStack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpStack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpStack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/AliasAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/AliasAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/AliasAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/AlignmentMaskAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/AlignmentMaskAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/AlignmentMaskAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src9.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src9.cpp
+new file mode 100644
+index 0000000000..a02b358e40
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src9.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/BacktrackingAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BacktrackingAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BacktrackingAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Bailouts.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Bailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Bailouts.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineBailouts.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineBailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineBailouts.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineCompiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineCompiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineDebugModeOSR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineDebugModeOSR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineDebugModeOSR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineFrame.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineFrame.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/js-confdefs.h b/src/third_party/mozjs-45/platform/arm/linux/build/js-confdefs.h
+new file mode 100644
+index 0000000000..c24f52dc23
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/js-confdefs.h
+@@ -0,0 +1,100 @@
++/* List of defines generated by configure. Included with preprocessor flag,
++ * -include, to avoid long list of -D defines on the compile command-line.
++ * Do not edit.
++ */
++
++#ifndef js_confdefs_h
++#define js_confdefs_h
++
++#define BUILD_ARM_NEON 1
++#define CPP_THROW_NEW throw()
++#define D_INO d_ino
++#define EDITLINE 1
++#define HAVE_ACOSH 1
++#define HAVE_ALLOCA_H 1
++#define HAVE_ARM_NEON 1
++#define HAVE_ARM_SIMD 1
++#define HAVE_ASINH 1
++#define HAVE_ATANH 1
++#define HAVE_CBRT 1
++#define HAVE_CLOCK_MONOTONIC 1
++#define HAVE_CPP_AMBIGUITY_RESOLVING_USING 1
++#define HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR 1
++#define HAVE_DIRENT_H 1
++#define HAVE_DLOPEN 1
++#define HAVE_ENDIAN_H 1
++#define HAVE_EXPM1 1
++#define HAVE_GETC_UNLOCKED 1
++#define HAVE_GETOPT_H 1
++#define HAVE_GMTIME_R 1
++#define HAVE_GNU_LIBC_VERSION_H 1
++#define HAVE_I18N_LC_MESSAGES 1
++#define HAVE_LANGINFO_CODESET 1
++#define HAVE_LIBM 1
++#define HAVE_LINUX_QUOTA_H 1
++#define HAVE_LOCALECONV 1
++#define HAVE_LOCALECONV 1
++#define HAVE_LOCALTIME_R 1
++#define HAVE_LOG1P 1
++#define HAVE_LOG2 1
++#define HAVE_MALLOC_H 1
++#define HAVE_MALLOC_H 1
++#define HAVE_MALLOC_USABLE_SIZE 1
++#define HAVE_MBRTOWC 1
++#define HAVE_MEMALIGN 1
++#define HAVE_MEMORY_H 1
++#define HAVE_NL_TYPES_H 1
++#define HAVE_POSIX_FADVISE 1
++#define HAVE_POSIX_FALLOCATE 1
++#define HAVE_POSIX_MEMALIGN 1
++#define HAVE_RES_NINIT 1
++#define HAVE_SETLOCALE 1
++#define HAVE_SSIZE_T 1
++#define HAVE_STRNDUP 1
++#define HAVE_SYS_BITYPES_H 1
++#define HAVE_SYS_CDEFS_H 1
++#define HAVE_SYS_MOUNT_H 1
++#define HAVE_SYS_QUOTA_H 1
++#define HAVE_SYS_STATFS_H 1
++#define HAVE_SYS_STATVFS_H 1
++#define HAVE_SYS_VFS_H 1
++#define HAVE_THREAD_TLS_KEYWORD 1
++#define HAVE_TM_ZONE_TM_GMTOFF 1
++#define HAVE_UNISTD_H 1
++#define HAVE_VALLOC 1
++#define HAVE_VA_COPY 1
++#define HAVE_VISIBILITY_ATTRIBUTE 1
++#define HAVE_VISIBILITY_HIDDEN_ATTRIBUTE 1
++#define HAVE_WCRTOMB 1
++#define HAVE___CXA_DEMANGLE 1
++#define JS_CODEGEN_ARM 1
++#define JS_CPU_ARM 1
++#define JS_DEFAULT_JITREPORT_GRANULARITY 3
++#define JS_HAVE_ENDIAN_H 1
++#define JS_NUNBOX32 1
++#define JS_POSIX_NSPR 1
++#define JS_STANDALONE 1
++#define MALLOC_H <malloc.h>
++#define MALLOC_USABLE_SIZE_CONST_PTR
++#define MOZILLA_UAVERSION "45.0"
++#define MOZILLA_VERSION "45.8.0"
++#define MOZILLA_VERSION_U 45.8.0
++#define MOZJS_MAJOR_VERSION 45
++#define MOZJS_MINOR_VERSION 8
++#define MOZ_DEBUG_SYMBOLS 1
++#define MOZ_DLL_SUFFIX ".so"
++#define MOZ_GLUE_IN_PROGRAM 1
++#define MOZ_MEMORY 1
++#define MOZ_MEMORY_LINUX 1
++#define MOZ_UPDATE_CHANNEL default
++#define NO_NSPR_10_SUPPORT 1
++#define RELEASE_BUILD 1
++#define STDC_HEADERS 1
++#define VA_COPY va_copy
++#define XP_UNIX 1
++#define X_DISPLAY_MISSING 1
++#define _REENTRANT 1
++
++#include "js/RequiredDefines.h"
++
++#endif /* js_confdefs_h */
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/include/js-config.h b/src/third_party/mozjs-45/platform/arm/linux/include/js-config.h
+new file mode 100644
+index 0000000000..a5645020e0
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/include/js-config.h
+@@ -0,0 +1,59 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
++ * vim: set ts=8 sw=4 et tw=78:
++ *
++ * This Source Code Form is subject to the terms of the Mozilla Public
++ * License, v. 2.0. If a copy of the MPL was not distributed with this
++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
++
++#ifndef js_config_h
++#define js_config_h
++
++/* Definitions set at build time that affect SpiderMonkey's public API.
++ This header file is generated by the SpiderMonkey configure script,
++ and installed along with jsapi.h. */
++
++/* Define to 1 if SpiderMonkey is in debug mode. */
++/* #undef JS_DEBUG */
++
++/* Define to 1 if SpiderMonkey should not use struct types in debug builds. */
++/* #undef JS_NO_JSVAL_JSID_STRUCT_TYPES */
++
++/* Define to 1 if SpiderMonkey should support multi-threaded clients. */
++/* #undef JS_THREADSAFE */
++
++/* Define to 1 if SpiderMonkey should include ctypes support. */
++/* #undef JS_HAS_CTYPES */
++
++/* Define to 1 if SpiderMonkey should support the ability to perform
++ entirely too much GC. */
++/* #undef JS_GC_ZEAL */
++
++/* Define to 1 if SpiderMonkey should use small chunks. */
++/* #undef JS_GC_SMALL_CHUNK_SIZE */
++
++/* Define to 1 to perform extra assertions and heap poisoning. */
++/* #undef JS_CRASH_DIAGNOSTICS */
++
++/* Define to 1 if the <endian.h> header is present and
++ useable. See jscpucfg.h. */
++#define JS_HAVE_ENDIAN_H 1
++
++/* Define to 1 if the <machine/endian.h> header is present and
++ useable. See jscpucfg.h. */
++/* #undef JS_HAVE_MACHINE_ENDIAN_H */
++
++/* Define to 1 if the <sys/isa_defs.h> header is present and
++ useable. See jscpucfg.h. */
++/* #undef JS_HAVE_SYS_ISA_DEFS_H */
++
++/* Define to 1 if SpiderMonkey is in NUNBOX32 mode. */
++#define JS_NUNBOX32 1
++
++/* Define to 1 if SpiderMonkey is in PUNBOX64 mode. */
++/* #undef JS_PUNBOX64 */
++
++/* MOZILLA JSAPI version number components */
++#define MOZJS_MAJOR_VERSION 45
++#define MOZJS_MINOR_VERSION 8
++
++#endif /* js_config_h */
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src0.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src0.cpp
+new file mode 100644
+index 0000000000..3392352d8b
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src0.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "asmjs/AsmJSFrameIterator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSFrameIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSFrameIterator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSLink.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSLink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSLink.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSModule.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSModule.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSModule.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSSignalHandlers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSSignalHandlers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSSignalHandlers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSValidate.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSValidate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSValidate.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/WasmGenerator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmGenerator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src1.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src1.cpp
+new file mode 100644
+index 0000000000..a6b717f374
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src1.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "asmjs/WasmIonCompile.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmIonCompile.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmIonCompile.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/WasmStubs.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmStubs.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmStubs.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/AtomicsObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/AtomicsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/AtomicsObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Eval.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Eval.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Eval.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Intl.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Intl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Intl.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/MapObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/MapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/MapObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src10.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src10.cpp
+new file mode 100644
+index 0000000000..8790c5fa8e
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src10.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/BaselineFrameInfo.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineFrameInfo.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineFrameInfo.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineInspector.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineInspector.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineInspector.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineJIT.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineJIT.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineJIT.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BitSet.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BitSet.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BitSet.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BytecodeAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BytecodeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BytecodeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src11.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src11.cpp
+new file mode 100644
+index 0000000000..39333e8bbd
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src11.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/C1Spewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/C1Spewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/C1Spewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/CodeGenerator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/CodeGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/CodeGenerator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/CompileWrappers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/CompileWrappers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/CompileWrappers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Disassembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Disassembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Disassembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/EagerSimdUnbox.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EagerSimdUnbox.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EagerSimdUnbox.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/EdgeCaseAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EdgeCaseAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EdgeCaseAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src12.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src12.cpp
+new file mode 100644
+index 0000000000..c2ccff74ad
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src12.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/EffectiveAddressAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EffectiveAddressAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EffectiveAddressAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/ExecutableAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ExecutableAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ExecutableAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/InstructionReordering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/InstructionReordering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/InstructionReordering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Ion.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Ion.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Ion.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonBuilder.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonBuilder.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonBuilder.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src13.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src13.cpp
+new file mode 100644
+index 0000000000..61225a9350
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src13.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/IonCaches.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonCaches.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonCaches.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonOptimizationLevels.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonOptimizationLevels.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonOptimizationLevels.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JSONSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JSONSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JSONSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitFrames.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitFrames.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitFrames.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitOptions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitOptions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitOptions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src14.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src14.cpp
+new file mode 100644
+index 0000000000..69f4d54cd5
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src14.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/JitcodeMap.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitcodeMap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitcodeMap.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LICM.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LICM.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LICM.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LIR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LIR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LoopUnroller.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LoopUnroller.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LoopUnroller.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Lowering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Lowering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Lowering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MCallOptimize.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MCallOptimize.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MCallOptimize.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src15.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src15.cpp
+new file mode 100644
+index 0000000000..544491554b
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src15.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/MIR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MIR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MIRGraph.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MIRGraph.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MIRGraph.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MoveResolver.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MoveResolver.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MoveResolver.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/OptimizationTracking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/OptimizationTracking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/OptimizationTracking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/PerfSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/PerfSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/PerfSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src16.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src16.cpp
+new file mode 100644
+index 0000000000..d8c2a53bb3
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src16.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/ProcessExecutableMemory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ProcessExecutableMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ProcessExecutableMemory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RangeAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RangeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RangeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Recover.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Recover.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Recover.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RegisterAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RegisterAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RegisterAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RematerializedFrame.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RematerializedFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RematerializedFrame.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Safepoints.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Safepoints.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Safepoints.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src17.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src17.cpp
+new file mode 100644
+index 0000000000..c0fda43387
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src17.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/ScalarReplacement.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ScalarReplacement.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ScalarReplacement.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/SharedIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/SharedIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/SharedIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Sink.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Sink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Sink.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Snapshots.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Snapshots.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Snapshots.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/StupidAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/StupidAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/StupidAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/TypePolicy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/TypePolicy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/TypePolicy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src18.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src18.cpp
+new file mode 100644
+index 0000000000..232559f61e
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src18.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/TypedObjectPrediction.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/TypedObjectPrediction.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/TypedObjectPrediction.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/VMFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/VMFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/VMFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/ValueNumbering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ValueNumbering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ValueNumbering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/shared/BaselineCompiler-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/BaselineCompiler-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/BaselineCompiler-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/shared/CodeGenerator-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/CodeGenerator-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/CodeGenerator-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/shared/Lowering-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/Lowering-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/Lowering-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src19.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src19.cpp
+new file mode 100644
+index 0000000000..3bea6cc867
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src19.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/x86-shared/Architecture-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/Architecture-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/Architecture-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86-shared/Assembler-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/Assembler-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/Assembler-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86-shared/AssemblerBuffer-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/AssemblerBuffer-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/AssemblerBuffer-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86-shared/BaselineCompiler-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/BaselineCompiler-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/BaselineCompiler-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86-shared/BaselineIC-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/BaselineIC-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/BaselineIC-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86-shared/CodeGenerator-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/CodeGenerator-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/CodeGenerator-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src2.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src2.cpp
+new file mode 100644
+index 0000000000..f9ee5a1f37
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src2.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "builtin/ModuleObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/ModuleObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/ModuleObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Object.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Object.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Object.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Profilers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Profilers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Profilers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Reflect.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Reflect.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Reflect.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/ReflectParse.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/ReflectParse.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/ReflectParse.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/SIMD.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/SIMD.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/SIMD.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src20.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src20.cpp
+new file mode 100644
+index 0000000000..47705ef152
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src20.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/x86-shared/Lowering-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/Lowering-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/Lowering-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86-shared/MacroAssembler-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/MacroAssembler-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/MacroAssembler-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86-shared/MoveEmitter-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/MoveEmitter-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/MoveEmitter-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86/Assembler-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/Assembler-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/Assembler-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86/Bailouts-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/Bailouts-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/Bailouts-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86/BaselineCompiler-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/BaselineCompiler-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/BaselineCompiler-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src21.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src21.cpp
+new file mode 100644
+index 0000000000..8df3bcb0a1
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src21.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/x86/BaselineIC-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/BaselineIC-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/BaselineIC-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86/CodeGenerator-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/CodeGenerator-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/CodeGenerator-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86/Lowering-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/Lowering-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/Lowering-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86/MacroAssembler-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/MacroAssembler-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/MacroAssembler-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86/SharedIC-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/SharedIC-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/SharedIC-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86/Trampoline-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/Trampoline-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/Trampoline-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src22.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src22.cpp
+new file mode 100644
+index 0000000000..3f735d3edd
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src22.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsalloc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsalloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsalloc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsapi.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsapi.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsbool.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsbool.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsbool.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jscntxt.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jscntxt.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jscntxt.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jscompartment.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jscompartment.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jscompartment.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsdate.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsdate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsdate.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src23.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src23.cpp
+new file mode 100644
+index 0000000000..657a68b468
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src23.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsdtoa.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsdtoa.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsdtoa.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsexn.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsexn.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsexn.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsfriendapi.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsfriendapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsfriendapi.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsfun.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsfun.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsfun.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsgc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsgc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsgc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsiter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsiter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsiter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src24.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src24.cpp
+new file mode 100644
+index 0000000000..3aef296444
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src24.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsnativestack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsnativestack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsnativestack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsnum.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsnum.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsnum.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsobj.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsobj.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsobj.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "json.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "json.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "json.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsopcode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsopcode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsopcode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsprf.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsprf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsprf.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src25.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src25.cpp
+new file mode 100644
+index 0000000000..10ed87fb89
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src25.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jspropertytree.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jspropertytree.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jspropertytree.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsscript.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsscript.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsscript.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsstr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsstr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsstr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jswatchpoint.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jswatchpoint.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jswatchpoint.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsweakmap.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsweakmap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsweakmap.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "perf/jsperf.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "perf/jsperf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "perf/jsperf.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src26.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src26.cpp
+new file mode 100644
+index 0000000000..bac2403397
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src26.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "proxy/BaseProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/BaseProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/BaseProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/CrossCompartmentWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/CrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/CrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/DeadObjectProxy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/DeadObjectProxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/DeadObjectProxy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/DirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/DirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/DirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/OpaqueCrossCompartmentWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/OpaqueCrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/OpaqueCrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/Proxy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/Proxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/Proxy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src27.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src27.cpp
+new file mode 100644
+index 0000000000..df8578f2c5
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src27.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "proxy/ScriptedDirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/ScriptedDirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/ScriptedDirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/ScriptedIndirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/ScriptedIndirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/ScriptedIndirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/SecurityWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/SecurityWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/SecurityWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/Wrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/Wrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/Wrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ArgumentsObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ArgumentsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ArgumentsObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ArrayBufferObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ArrayBufferObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ArrayBufferObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src28.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src28.cpp
+new file mode 100644
+index 0000000000..e53e4a3893
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src28.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/CallNonGenericMethod.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CallNonGenericMethod.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CallNonGenericMethod.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/CharacterEncoding.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CharacterEncoding.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CharacterEncoding.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/CodeCoverage.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CodeCoverage.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CodeCoverage.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Compression.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Compression.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Compression.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/DateTime.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/DateTime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/DateTime.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Debugger.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Debugger.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Debugger.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src29.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src29.cpp
+new file mode 100644
+index 0000000000..6273bb76f2
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src29.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/DebuggerMemory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/DebuggerMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/DebuggerMemory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ErrorObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ErrorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ErrorObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ForOfIterator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ForOfIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ForOfIterator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/GeneratorObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/GeneratorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/GeneratorObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/GlobalObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/GlobalObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/GlobalObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/HelperThreads.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/HelperThreads.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/HelperThreads.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src3.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src3.cpp
+new file mode 100644
+index 0000000000..32bd1caa82
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src3.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "builtin/SymbolObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/SymbolObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/SymbolObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/TestingFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/TestingFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/TestingFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/TypedObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/TypedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/TypedObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/WeakMapObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/WeakMapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/WeakMapObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/WeakSetObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/WeakSetObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/WeakSetObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "devtools/sharkctl.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "devtools/sharkctl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "devtools/sharkctl.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src30.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src30.cpp
+new file mode 100644
+index 0000000000..ecf387ffae
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src30.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Id.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Id.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Id.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Interpreter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Interpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Interpreter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/JSONParser.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/JSONParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/JSONParser.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/MemoryMetrics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/MemoryMetrics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/MemoryMetrics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Monitor.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Monitor.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Monitor.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/NativeObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/NativeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/NativeObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src31.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src31.cpp
+new file mode 100644
+index 0000000000..6e3bd65c07
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src31.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/ObjectGroup.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ObjectGroup.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ObjectGroup.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/PIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/PIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/PIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/PosixNSPR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/PosixNSPR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/PosixNSPR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Printer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Printer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Printer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Probes.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Probes.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Probes.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ProxyObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ProxyObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ProxyObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src32.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src32.cpp
+new file mode 100644
+index 0000000000..05f8402e39
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src32.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/ReceiverGuard.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ReceiverGuard.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ReceiverGuard.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/RegExpObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/RegExpObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/RegExpObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/RegExpStatics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/RegExpStatics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/RegExpStatics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Runtime.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Runtime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Runtime.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SPSProfiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SPSProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SPSProfiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SavedStacks.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SavedStacks.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SavedStacks.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src33.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src33.cpp
+new file mode 100644
+index 0000000000..a3a211d45e
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src33.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/ScopeObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ScopeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ScopeObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SelfHosting.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SelfHosting.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SelfHosting.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Shape.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Shape.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Shape.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SharedArrayObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SharedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SharedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Stack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Stack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Stack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Stopwatch.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Stopwatch.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Stopwatch.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src34.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src34.cpp
+new file mode 100644
+index 0000000000..cd1eb2528d
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src34.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/String.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/String.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/String.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/StringBuffer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/StringBuffer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/StringBuffer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/StructuredClone.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/StructuredClone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/StructuredClone.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Symbol.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Symbol.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Symbol.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/TaggedProto.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TaggedProto.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TaggedProto.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Time.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Time.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Time.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src35.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src35.cpp
+new file mode 100644
+index 0000000000..3e46e94426
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src35.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/TypeInference.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TypeInference.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TypeInference.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/TypedArrayObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TypedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TypedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UbiNode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UbiNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UbiNode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UbiNodeCensus.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UbiNodeCensus.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UbiNodeCensus.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UnboxedObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UnboxedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UnboxedObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Unicode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Unicode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Unicode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src36.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src36.cpp
+new file mode 100644
+index 0000000000..e976e6b399
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src36.cpp
+@@ -0,0 +1,28 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Value.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Value.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Value.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/WeakMapPtr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/WeakMapPtr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/WeakMapPtr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Xdr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Xdr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Xdr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src4.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src4.cpp
+new file mode 100644
+index 0000000000..44163573c9
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src4.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "ds/LifoAlloc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "ds/LifoAlloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "ds/LifoAlloc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/BytecodeCompiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/BytecodeCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/BytecodeCompiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/BytecodeEmitter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/BytecodeEmitter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/BytecodeEmitter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/FoldConstants.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/FoldConstants.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/FoldConstants.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/NameFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/NameFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/NameFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/ParseMaps.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/ParseMaps.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/ParseMaps.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src5.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src5.cpp
+new file mode 100644
+index 0000000000..4a056d0b55
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src5.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "frontend/ParseNode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/ParseNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/ParseNode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/TokenStream.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/TokenStream.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/TokenStream.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Allocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Allocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Allocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Barrier.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Barrier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Barrier.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/GCTrace.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/GCTrace.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/GCTrace.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Iteration.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Iteration.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Iteration.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src6.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src6.cpp
+new file mode 100644
+index 0000000000..2c0af2b856
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src6.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "gc/Marking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Marking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Marking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Memory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Memory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Memory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/MemoryProfiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/MemoryProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/MemoryProfiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Nursery.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Nursery.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Nursery.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/RootMarking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/RootMarking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/RootMarking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Statistics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Statistics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Statistics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src7.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src7.cpp
+new file mode 100644
+index 0000000000..edc5d0ddec
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src7.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "gc/Tracer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Tracer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Tracer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Verifier.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Verifier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Verifier.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Zone.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Zone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Zone.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/NativeRegExpMacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/NativeRegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/NativeRegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpAST.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpAST.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpAST.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpEngine.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpEngine.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpEngine.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src8.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src8.cpp
+new file mode 100644
+index 0000000000..4150698a38
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src8.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "irregexp/RegExpInterpreter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpInterpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpInterpreter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpMacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpParser.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpParser.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpStack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpStack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpStack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/AliasAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/AliasAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/AliasAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/AlignmentMaskAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/AlignmentMaskAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/AlignmentMaskAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src9.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src9.cpp
+new file mode 100644
+index 0000000000..a02b358e40
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src9.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/BacktrackingAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BacktrackingAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BacktrackingAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Bailouts.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Bailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Bailouts.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineBailouts.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineBailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineBailouts.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineCompiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineCompiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineDebugModeOSR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineDebugModeOSR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineDebugModeOSR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineFrame.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineFrame.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/js-confdefs.h b/src/third_party/mozjs-45/platform/i386/linux/build/js-confdefs.h
+new file mode 100644
+index 0000000000..daa366e1b3
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/js-confdefs.h
+@@ -0,0 +1,98 @@
++/* List of defines generated by configure. Included with preprocessor flag,
++ * -include, to avoid long list of -D defines on the compile command-line.
++ * Do not edit.
++ */
++
++#ifndef js_confdefs_h
++#define js_confdefs_h
++
++#define CPP_THROW_NEW throw()
++#define D_INO d_ino
++#define EDITLINE 1
++#define HAVE_ACOSH 1
++#define HAVE_ALLOCA_H 1
++#define HAVE_ASINH 1
++#define HAVE_ATANH 1
++#define HAVE_CBRT 1
++#define HAVE_CLOCK_MONOTONIC 1
++#define HAVE_CPP_AMBIGUITY_RESOLVING_USING 1
++#define HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR 1
++#define HAVE_CPUID_H 1
++#define HAVE_DIRENT_H 1
++#define HAVE_DLOPEN 1
++#define HAVE_ENDIAN_H 1
++#define HAVE_EXPM1 1
++#define HAVE_GETC_UNLOCKED 1
++#define HAVE_GETOPT_H 1
++#define HAVE_GMTIME_R 1
++#define HAVE_GNU_LIBC_VERSION_H 1
++#define HAVE_I18N_LC_MESSAGES 1
++#define HAVE_LANGINFO_CODESET 1
++#define HAVE_LIBM 1
++#define HAVE_LINUX_QUOTA_H 1
++#define HAVE_LOCALECONV 1
++#define HAVE_LOCALECONV 1
++#define HAVE_LOCALTIME_R 1
++#define HAVE_LOG1P 1
++#define HAVE_LOG2 1
++#define HAVE_MALLOC_H 1
++#define HAVE_MALLOC_H 1
++#define HAVE_MALLOC_USABLE_SIZE 1
++#define HAVE_MBRTOWC 1
++#define HAVE_MEMALIGN 1
++#define HAVE_MEMORY_H 1
++#define HAVE_NL_TYPES_H 1
++#define HAVE_POSIX_FADVISE 1
++#define HAVE_POSIX_FALLOCATE 1
++#define HAVE_POSIX_MEMALIGN 1
++#define HAVE_RES_NINIT 1
++#define HAVE_SETLOCALE 1
++#define HAVE_SSIZE_T 1
++#define HAVE_STRNDUP 1
++#define HAVE_SYS_BITYPES_H 1
++#define HAVE_SYS_CDEFS_H 1
++#define HAVE_SYS_MOUNT_H 1
++#define HAVE_SYS_QUOTA_H 1
++#define HAVE_SYS_STATFS_H 1
++#define HAVE_SYS_STATVFS_H 1
++#define HAVE_SYS_VFS_H 1
++#define HAVE_THREAD_TLS_KEYWORD 1
++#define HAVE_TM_ZONE_TM_GMTOFF 1
++#define HAVE_UNISTD_H 1
++#define HAVE_VALLOC 1
++#define HAVE_VA_COPY 1
++#define HAVE_VISIBILITY_ATTRIBUTE 1
++#define HAVE_VISIBILITY_HIDDEN_ATTRIBUTE 1
++#define HAVE_WCRTOMB 1
++#define HAVE___CXA_DEMANGLE 1
++#define JS_CODEGEN_X86 1
++#define JS_CPU_X86 1
++#define JS_DEFAULT_JITREPORT_GRANULARITY 3
++#define JS_HAVE_ENDIAN_H 1
++#define JS_NUNBOX32 1
++#define JS_POSIX_NSPR 1
++#define JS_STANDALONE 1
++#define MALLOC_H <malloc.h>
++#define MALLOC_USABLE_SIZE_CONST_PTR
++#define MOZILLA_UAVERSION "45.0"
++#define MOZILLA_VERSION "45.8.0"
++#define MOZILLA_VERSION_U 45.8.0
++#define MOZJS_MAJOR_VERSION 45
++#define MOZJS_MINOR_VERSION 8
++#define MOZ_DEBUG_SYMBOLS 1
++#define MOZ_DLL_SUFFIX ".so"
++#define MOZ_GLUE_IN_PROGRAM 1
++#define MOZ_MEMORY 1
++#define MOZ_MEMORY_LINUX 1
++#define MOZ_UPDATE_CHANNEL default
++#define NO_NSPR_10_SUPPORT 1
++#define RELEASE_BUILD 1
++#define STDC_HEADERS 1
++#define VA_COPY va_copy
++#define XP_UNIX 1
++#define X_DISPLAY_MISSING 1
++#define _REENTRANT 1
++
++#include "js/RequiredDefines.h"
++
++#endif /* js_confdefs_h */
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/include/js-config.h b/src/third_party/mozjs-45/platform/i386/linux/include/js-config.h
+new file mode 100644
+index 0000000000..a5645020e0
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/include/js-config.h
+@@ -0,0 +1,59 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
++ * vim: set ts=8 sw=4 et tw=78:
++ *
++ * This Source Code Form is subject to the terms of the Mozilla Public
++ * License, v. 2.0. If a copy of the MPL was not distributed with this
++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
++
++#ifndef js_config_h
++#define js_config_h
++
++/* Definitions set at build time that affect SpiderMonkey's public API.
++ This header file is generated by the SpiderMonkey configure script,
++ and installed along with jsapi.h. */
++
++/* Define to 1 if SpiderMonkey is in debug mode. */
++/* #undef JS_DEBUG */
++
++/* Define to 1 if SpiderMonkey should not use struct types in debug builds. */
++/* #undef JS_NO_JSVAL_JSID_STRUCT_TYPES */
++
++/* Define to 1 if SpiderMonkey should support multi-threaded clients. */
++/* #undef JS_THREADSAFE */
++
++/* Define to 1 if SpiderMonkey should include ctypes support. */
++/* #undef JS_HAS_CTYPES */
++
++/* Define to 1 if SpiderMonkey should support the ability to perform
++ entirely too much GC. */
++/* #undef JS_GC_ZEAL */
++
++/* Define to 1 if SpiderMonkey should use small chunks. */
++/* #undef JS_GC_SMALL_CHUNK_SIZE */
++
++/* Define to 1 to perform extra assertions and heap poisoning. */
++/* #undef JS_CRASH_DIAGNOSTICS */
++
++/* Define to 1 if the <endian.h> header is present and
++ useable. See jscpucfg.h. */
++#define JS_HAVE_ENDIAN_H 1
++
++/* Define to 1 if the <machine/endian.h> header is present and
++ useable. See jscpucfg.h. */
++/* #undef JS_HAVE_MACHINE_ENDIAN_H */
++
++/* Define to 1 if the <sys/isa_defs.h> header is present and
++ useable. See jscpucfg.h. */
++/* #undef JS_HAVE_SYS_ISA_DEFS_H */
++
++/* Define to 1 if SpiderMonkey is in NUNBOX32 mode. */
++#define JS_NUNBOX32 1
++
++/* Define to 1 if SpiderMonkey is in PUNBOX64 mode. */
++/* #undef JS_PUNBOX64 */
++
++/* MOZILLA JSAPI version number components */
++#define MOZJS_MAJOR_VERSION 45
++#define MOZJS_MINOR_VERSION 8
++
++#endif /* js_config_h */
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src0.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src0.cpp
+new file mode 100644
+index 0000000000..3392352d8b
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src0.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "asmjs/AsmJSFrameIterator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSFrameIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSFrameIterator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSLink.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSLink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSLink.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSModule.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSModule.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSModule.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSSignalHandlers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSSignalHandlers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSSignalHandlers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSValidate.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSValidate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSValidate.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/WasmGenerator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmGenerator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src1.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src1.cpp
+new file mode 100644
+index 0000000000..a6b717f374
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src1.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "asmjs/WasmIonCompile.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmIonCompile.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmIonCompile.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/WasmStubs.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmStubs.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmStubs.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/AtomicsObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/AtomicsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/AtomicsObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Eval.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Eval.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Eval.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Intl.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Intl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Intl.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/MapObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/MapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/MapObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src10.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src10.cpp
+new file mode 100644
+index 0000000000..8790c5fa8e
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src10.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/BaselineFrameInfo.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineFrameInfo.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineFrameInfo.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineInspector.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineInspector.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineInspector.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineJIT.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineJIT.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineJIT.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BitSet.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BitSet.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BitSet.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BytecodeAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BytecodeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BytecodeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src11.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src11.cpp
+new file mode 100644
+index 0000000000..39333e8bbd
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src11.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/C1Spewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/C1Spewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/C1Spewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/CodeGenerator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/CodeGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/CodeGenerator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/CompileWrappers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/CompileWrappers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/CompileWrappers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Disassembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Disassembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Disassembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/EagerSimdUnbox.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EagerSimdUnbox.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EagerSimdUnbox.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/EdgeCaseAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EdgeCaseAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EdgeCaseAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src12.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src12.cpp
+new file mode 100644
+index 0000000000..c2ccff74ad
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src12.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/EffectiveAddressAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EffectiveAddressAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EffectiveAddressAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/ExecutableAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ExecutableAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ExecutableAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/InstructionReordering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/InstructionReordering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/InstructionReordering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Ion.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Ion.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Ion.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonBuilder.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonBuilder.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonBuilder.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src13.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src13.cpp
+new file mode 100644
+index 0000000000..61225a9350
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src13.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/IonCaches.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonCaches.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonCaches.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonOptimizationLevels.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonOptimizationLevels.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonOptimizationLevels.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JSONSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JSONSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JSONSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitFrames.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitFrames.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitFrames.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitOptions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitOptions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitOptions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src14.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src14.cpp
+new file mode 100644
+index 0000000000..69f4d54cd5
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src14.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/JitcodeMap.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitcodeMap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitcodeMap.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LICM.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LICM.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LICM.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LIR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LIR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LoopUnroller.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LoopUnroller.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LoopUnroller.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Lowering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Lowering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Lowering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MCallOptimize.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MCallOptimize.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MCallOptimize.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src15.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src15.cpp
+new file mode 100644
+index 0000000000..544491554b
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src15.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/MIR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MIR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MIRGraph.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MIRGraph.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MIRGraph.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MoveResolver.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MoveResolver.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MoveResolver.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/OptimizationTracking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/OptimizationTracking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/OptimizationTracking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/PerfSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/PerfSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/PerfSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src16.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src16.cpp
+new file mode 100644
+index 0000000000..d8c2a53bb3
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src16.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/ProcessExecutableMemory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ProcessExecutableMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ProcessExecutableMemory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RangeAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RangeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RangeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Recover.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Recover.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Recover.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RegisterAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RegisterAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RegisterAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RematerializedFrame.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RematerializedFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RematerializedFrame.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Safepoints.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Safepoints.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Safepoints.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src17.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src17.cpp
+new file mode 100644
+index 0000000000..c0fda43387
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src17.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/ScalarReplacement.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ScalarReplacement.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ScalarReplacement.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/SharedIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/SharedIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/SharedIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Sink.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Sink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Sink.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Snapshots.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Snapshots.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Snapshots.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/StupidAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/StupidAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/StupidAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/TypePolicy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/TypePolicy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/TypePolicy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src18.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src18.cpp
+new file mode 100644
+index 0000000000..8039f26024
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src18.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/TypedObjectPrediction.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/TypedObjectPrediction.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/TypedObjectPrediction.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/VMFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/VMFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/VMFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/ValueNumbering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ValueNumbering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ValueNumbering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/none/Trampoline-none.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/none/Trampoline-none.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/none/Trampoline-none.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/shared/BaselineCompiler-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/BaselineCompiler-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/BaselineCompiler-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/shared/CodeGenerator-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/CodeGenerator-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/CodeGenerator-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src19.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src19.cpp
+new file mode 100644
+index 0000000000..c4d8192b3b
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src19.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/shared/Lowering-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/Lowering-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/Lowering-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsalloc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsalloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsalloc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsapi.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsapi.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsbool.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsbool.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsbool.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jscntxt.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jscntxt.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jscntxt.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jscompartment.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jscompartment.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jscompartment.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src2.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src2.cpp
+new file mode 100644
+index 0000000000..f9ee5a1f37
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src2.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "builtin/ModuleObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/ModuleObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/ModuleObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Object.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Object.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Object.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Profilers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Profilers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Profilers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Reflect.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Reflect.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Reflect.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/ReflectParse.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/ReflectParse.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/ReflectParse.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/SIMD.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/SIMD.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/SIMD.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src20.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src20.cpp
+new file mode 100644
+index 0000000000..4014315c08
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src20.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsdate.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsdate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsdate.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsdtoa.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsdtoa.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsdtoa.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsexn.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsexn.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsexn.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsfriendapi.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsfriendapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsfriendapi.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsfun.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsfun.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsfun.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsgc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsgc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsgc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src21.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src21.cpp
+new file mode 100644
+index 0000000000..aba9fc0cb4
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src21.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsiter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsiter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsiter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsnativestack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsnativestack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsnativestack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsnum.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsnum.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsnum.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsobj.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsobj.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsobj.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "json.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "json.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "json.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsopcode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsopcode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsopcode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src22.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src22.cpp
+new file mode 100644
+index 0000000000..5a610ef6ac
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src22.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsprf.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsprf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsprf.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jspropertytree.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jspropertytree.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jspropertytree.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsscript.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsscript.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsscript.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsstr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsstr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsstr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jswatchpoint.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jswatchpoint.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jswatchpoint.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsweakmap.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsweakmap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsweakmap.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src23.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src23.cpp
+new file mode 100644
+index 0000000000..357fb8b6a9
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src23.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "perf/jsperf.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "perf/jsperf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "perf/jsperf.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/BaseProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/BaseProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/BaseProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/CrossCompartmentWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/CrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/CrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/DeadObjectProxy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/DeadObjectProxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/DeadObjectProxy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/DirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/DirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/DirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/OpaqueCrossCompartmentWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/OpaqueCrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/OpaqueCrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src24.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src24.cpp
+new file mode 100644
+index 0000000000..c9a4e53f85
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src24.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "proxy/Proxy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/Proxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/Proxy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/ScriptedDirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/ScriptedDirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/ScriptedDirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/ScriptedIndirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/ScriptedIndirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/ScriptedIndirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/SecurityWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/SecurityWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/SecurityWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/Wrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/Wrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/Wrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ArgumentsObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ArgumentsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ArgumentsObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src25.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src25.cpp
+new file mode 100644
+index 0000000000..aa66b36fb1
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src25.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/ArrayBufferObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ArrayBufferObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ArrayBufferObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/CallNonGenericMethod.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CallNonGenericMethod.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CallNonGenericMethod.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/CharacterEncoding.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CharacterEncoding.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CharacterEncoding.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/CodeCoverage.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CodeCoverage.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CodeCoverage.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Compression.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Compression.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Compression.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/DateTime.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/DateTime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/DateTime.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src26.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src26.cpp
+new file mode 100644
+index 0000000000..3d98b61795
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src26.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Debugger.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Debugger.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Debugger.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/DebuggerMemory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/DebuggerMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/DebuggerMemory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ErrorObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ErrorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ErrorObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ForOfIterator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ForOfIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ForOfIterator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/GeneratorObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/GeneratorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/GeneratorObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/GlobalObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/GlobalObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/GlobalObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src27.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src27.cpp
+new file mode 100644
+index 0000000000..86af1e7327
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src27.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/HelperThreads.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/HelperThreads.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/HelperThreads.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Id.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Id.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Id.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Interpreter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Interpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Interpreter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/JSONParser.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/JSONParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/JSONParser.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/MemoryMetrics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/MemoryMetrics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/MemoryMetrics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Monitor.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Monitor.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Monitor.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src28.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src28.cpp
+new file mode 100644
+index 0000000000..9e43dfb736
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src28.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/NativeObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/NativeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/NativeObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ObjectGroup.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ObjectGroup.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ObjectGroup.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/PIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/PIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/PIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/PosixNSPR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/PosixNSPR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/PosixNSPR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Printer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Printer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Printer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Probes.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Probes.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Probes.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src29.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src29.cpp
+new file mode 100644
+index 0000000000..e4ac196768
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src29.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/ProxyObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ProxyObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ProxyObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ReceiverGuard.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ReceiverGuard.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ReceiverGuard.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/RegExpObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/RegExpObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/RegExpObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/RegExpStatics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/RegExpStatics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/RegExpStatics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Runtime.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Runtime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Runtime.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SPSProfiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SPSProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SPSProfiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src3.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src3.cpp
+new file mode 100644
+index 0000000000..32bd1caa82
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src3.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "builtin/SymbolObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/SymbolObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/SymbolObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/TestingFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/TestingFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/TestingFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/TypedObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/TypedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/TypedObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/WeakMapObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/WeakMapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/WeakMapObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/WeakSetObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/WeakSetObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/WeakSetObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "devtools/sharkctl.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "devtools/sharkctl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "devtools/sharkctl.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src30.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src30.cpp
+new file mode 100644
+index 0000000000..a702a115ae
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src30.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/SavedStacks.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SavedStacks.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SavedStacks.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ScopeObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ScopeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ScopeObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SelfHosting.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SelfHosting.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SelfHosting.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Shape.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Shape.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Shape.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SharedArrayObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SharedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SharedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Stack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Stack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Stack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src31.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src31.cpp
+new file mode 100644
+index 0000000000..b106a07280
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src31.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Stopwatch.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Stopwatch.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Stopwatch.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/String.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/String.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/String.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/StringBuffer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/StringBuffer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/StringBuffer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/StructuredClone.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/StructuredClone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/StructuredClone.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Symbol.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Symbol.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Symbol.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/TaggedProto.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TaggedProto.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TaggedProto.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src32.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src32.cpp
+new file mode 100644
+index 0000000000..e66ddb3e8a
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src32.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Time.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Time.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Time.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/TypeInference.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TypeInference.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TypeInference.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/TypedArrayObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TypedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TypedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UbiNode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UbiNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UbiNode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UbiNodeCensus.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UbiNodeCensus.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UbiNodeCensus.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UnboxedObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UnboxedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UnboxedObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src33.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src33.cpp
+new file mode 100644
+index 0000000000..bcf3f00370
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src33.cpp
+@@ -0,0 +1,37 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Unicode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Unicode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Unicode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Value.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Value.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Value.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/WeakMapPtr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/WeakMapPtr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/WeakMapPtr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Xdr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Xdr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Xdr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src4.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src4.cpp
+new file mode 100644
+index 0000000000..44163573c9
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src4.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "ds/LifoAlloc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "ds/LifoAlloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "ds/LifoAlloc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/BytecodeCompiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/BytecodeCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/BytecodeCompiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/BytecodeEmitter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/BytecodeEmitter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/BytecodeEmitter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/FoldConstants.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/FoldConstants.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/FoldConstants.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/NameFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/NameFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/NameFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/ParseMaps.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/ParseMaps.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/ParseMaps.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src5.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src5.cpp
+new file mode 100644
+index 0000000000..4a056d0b55
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src5.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "frontend/ParseNode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/ParseNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/ParseNode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/TokenStream.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/TokenStream.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/TokenStream.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Allocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Allocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Allocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Barrier.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Barrier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Barrier.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/GCTrace.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/GCTrace.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/GCTrace.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Iteration.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Iteration.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Iteration.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src6.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src6.cpp
+new file mode 100644
+index 0000000000..2c0af2b856
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src6.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "gc/Marking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Marking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Marking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Memory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Memory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Memory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/MemoryProfiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/MemoryProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/MemoryProfiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Nursery.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Nursery.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Nursery.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/RootMarking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/RootMarking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/RootMarking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Statistics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Statistics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Statistics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src7.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src7.cpp
+new file mode 100644
+index 0000000000..edc5d0ddec
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src7.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "gc/Tracer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Tracer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Tracer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Verifier.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Verifier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Verifier.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Zone.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Zone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Zone.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/NativeRegExpMacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/NativeRegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/NativeRegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpAST.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpAST.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpAST.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpEngine.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpEngine.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpEngine.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src8.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src8.cpp
+new file mode 100644
+index 0000000000..4150698a38
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src8.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "irregexp/RegExpInterpreter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpInterpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpInterpreter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpMacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpParser.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpParser.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpStack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpStack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpStack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/AliasAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/AliasAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/AliasAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/AlignmentMaskAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/AlignmentMaskAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/AlignmentMaskAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src9.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src9.cpp
+new file mode 100644
+index 0000000000..a02b358e40
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src9.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/BacktrackingAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BacktrackingAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BacktrackingAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Bailouts.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Bailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Bailouts.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineBailouts.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineBailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineBailouts.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineCompiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineCompiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineDebugModeOSR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineDebugModeOSR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineDebugModeOSR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineFrame.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineFrame.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/js-confdefs.h b/src/third_party/mozjs-45/platform/ppc64/linux/build/js-confdefs.h
+new file mode 100644
+index 0000000000..2b1a51d09f
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/js-confdefs.h
+@@ -0,0 +1,97 @@
++/* List of defines generated by configure. Included with preprocessor flag,
++ * -include, to avoid long list of -D defines on the compile command-line.
++ * Do not edit.
++ */
++
++#ifndef js_confdefs_h
++#define js_confdefs_h
++
++#define CPP_THROW_NEW throw()
++#define D_INO d_ino
++#define EDITLINE 1
++#define HAVE_64BIT_BUILD 1
++#define HAVE_ACOSH 1
++#define HAVE_ALLOCA_H 1
++#define HAVE_ASINH 1
++#define HAVE_ATANH 1
++#define HAVE_CBRT 1
++#define HAVE_CLOCK_MONOTONIC 1
++#define HAVE_CPP_AMBIGUITY_RESOLVING_USING 1
++#define HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR 1
++#define HAVE_DIRENT_H 1
++#define HAVE_DLOPEN 1
++#define HAVE_ENDIAN_H 1
++#define HAVE_EXPM1 1
++#define HAVE_GETC_UNLOCKED 1
++#define HAVE_GETOPT_H 1
++#define HAVE_GMTIME_R 1
++#define HAVE_GNU_LIBC_VERSION_H 1
++#define HAVE_I18N_LC_MESSAGES 1
++#define HAVE_LANGINFO_CODESET 1
++#define HAVE_LIBM 1
++#define HAVE_LINUX_QUOTA_H 1
++#define HAVE_LOCALECONV 1
++#define HAVE_LOCALECONV 1
++#define HAVE_LOCALTIME_R 1
++#define HAVE_LOG1P 1
++#define HAVE_LOG2 1
++#define HAVE_MALLOC_H 1
++#define HAVE_MALLOC_H 1
++#define HAVE_MALLOC_USABLE_SIZE 1
++#define HAVE_MBRTOWC 1
++#define HAVE_MEMALIGN 1
++#define HAVE_MEMORY_H 1
++#define HAVE_NL_TYPES_H 1
++#define HAVE_POSIX_FADVISE 1
++#define HAVE_POSIX_FALLOCATE 1
++#define HAVE_POSIX_MEMALIGN 1
++#define HAVE_RES_NINIT 1
++#define HAVE_SETLOCALE 1
++#define HAVE_SSIZE_T 1
++#define HAVE_STRNDUP 1
++#define HAVE_SYS_BITYPES_H 1
++#define HAVE_SYS_CDEFS_H 1
++#define HAVE_SYS_MOUNT_H 1
++#define HAVE_SYS_QUOTA_H 1
++#define HAVE_SYS_STATFS_H 1
++#define HAVE_SYS_STATVFS_H 1
++#define HAVE_SYS_VFS_H 1
++#define HAVE_THREAD_TLS_KEYWORD 1
++#define HAVE_TM_ZONE_TM_GMTOFF 1
++#define HAVE_UNISTD_H 1
++#define HAVE_VALLOC 1
++#define HAVE_VA_COPY 1
++#define HAVE_VISIBILITY_ATTRIBUTE 1
++#define HAVE_VISIBILITY_HIDDEN_ATTRIBUTE 1
++#define HAVE_WCRTOMB 1
++#define HAVE___CXA_DEMANGLE 1
++#define JS_CODEGEN_NONE 1
++#define JS_DEFAULT_JITREPORT_GRANULARITY 3
++#define JS_HAVE_ENDIAN_H 1
++#define JS_POSIX_NSPR 1
++#define JS_PUNBOX64 1
++#define JS_STANDALONE 1
++#define MALLOC_H <malloc.h>
++#define MALLOC_USABLE_SIZE_CONST_PTR
++#define MOZILLA_UAVERSION "45.0"
++#define MOZILLA_VERSION "45.8.0"
++#define MOZILLA_VERSION_U 45.8.0
++#define MOZJS_MAJOR_VERSION 45
++#define MOZJS_MINOR_VERSION 8
++#define MOZ_DEBUG_SYMBOLS 1
++#define MOZ_DLL_SUFFIX ".so"
++#define MOZ_GLUE_IN_PROGRAM 1
++#define MOZ_MEMORY 1
++#define MOZ_MEMORY_LINUX 1
++#define MOZ_UPDATE_CHANNEL default
++#define NO_NSPR_10_SUPPORT 1
++#define RELEASE_BUILD 1
++#define STDC_HEADERS 1
++#define VA_COPY va_copy
++#define XP_UNIX 1
++#define X_DISPLAY_MISSING 1
++#define _REENTRANT 1
++
++#include "js/RequiredDefines.h"
++
++#endif /* js_confdefs_h */
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/include/js-config.h b/src/third_party/mozjs-45/platform/ppc64/linux/include/js-config.h
+new file mode 100644
+index 0000000000..e4dcddbe68
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/include/js-config.h
+@@ -0,0 +1,59 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
++ * vim: set ts=8 sw=4 et tw=78:
++ *
++ * This Source Code Form is subject to the terms of the Mozilla Public
++ * License, v. 2.0. If a copy of the MPL was not distributed with this
++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
++
++#ifndef js_config_h
++#define js_config_h
++
++/* Definitions set at build time that affect SpiderMonkey's public API.
++ This header file is generated by the SpiderMonkey configure script,
++ and installed along with jsapi.h. */
++
++/* Define to 1 if SpiderMonkey is in debug mode. */
++/* #undef JS_DEBUG */
++
++/* Define to 1 if SpiderMonkey should not use struct types in debug builds. */
++/* #undef JS_NO_JSVAL_JSID_STRUCT_TYPES */
++
++/* Define to 1 if SpiderMonkey should support multi-threaded clients. */
++/* #undef JS_THREADSAFE */
++
++/* Define to 1 if SpiderMonkey should include ctypes support. */
++/* #undef JS_HAS_CTYPES */
++
++/* Define to 1 if SpiderMonkey should support the ability to perform
++ entirely too much GC. */
++/* #undef JS_GC_ZEAL */
++
++/* Define to 1 if SpiderMonkey should use small chunks. */
++/* #undef JS_GC_SMALL_CHUNK_SIZE */
++
++/* Define to 1 to perform extra assertions and heap poisoning. */
++/* #undef JS_CRASH_DIAGNOSTICS */
++
++/* Define to 1 if the <endian.h> header is present and
++ useable. See jscpucfg.h. */
++#define JS_HAVE_ENDIAN_H 1
++
++/* Define to 1 if the <machine/endian.h> header is present and
++ useable. See jscpucfg.h. */
++/* #undef JS_HAVE_MACHINE_ENDIAN_H */
++
++/* Define to 1 if the <sys/isa_defs.h> header is present and
++ useable. See jscpucfg.h. */
++/* #undef JS_HAVE_SYS_ISA_DEFS_H */
++
++/* Define to 1 if SpiderMonkey is in NUNBOX32 mode. */
++/* #undef JS_NUNBOX32 */
++
++/* Define to 1 if SpiderMonkey is in PUNBOX64 mode. */
++#define JS_PUNBOX64 1
++
++/* MOZILLA JSAPI version number components */
++#define MOZJS_MAJOR_VERSION 45
++#define MOZJS_MINOR_VERSION 8
++
++#endif /* js_config_h */
diff --git a/use-system-mozjs-icu-asio.patch b/use-system-mozjs-icu-asio.patch
deleted file mode 100644
index 7049460..0000000
--- a/use-system-mozjs-icu-asio.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-diff --git a/SConstruct b/SConstruct
-index f949f65475..9008888d9f 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -156,7 +156,7 @@ add_option('wiredtiger',
- type='choice',
- )
-
--js_engine_choices = ['mozjs', 'none']
-+js_engine_choices = ['mozjs', 'none', 'mozjs-45']
- add_option('js-engine',
- choices=js_engine_choices,
- default=js_engine_choices[0],
-@@ -322,6 +322,11 @@ add_option('use-system-icu',
- nargs=0,
- )
-
-+add_option('use-system-mozjs',
-+ help="use system version of mozjs",
-+ nargs=0,
-+)
-+
- add_option('use-system-intel_decimal128',
- help='use system version of intel decimal128',
- nargs=0,
-@@ -2850,20 +2855,20 @@ def doConfigure(myenv):
-
- if use_system_version_of_library("icu"):
- conf.FindSysLibDep("icudata", ["icudata"])
-- # We can't use FindSysLibDep() for icui18n and icuuc below, since SConf.CheckLib() (which
-- # FindSysLibDep() relies on) doesn't expose an 'extra_libs' parameter to indicate that the
-- # library being tested has additional dependencies (icuuc depends on icudata, and icui18n
-- # depends on both). As a workaround, we skip the configure check for these two libraries and
-- # manually assign the library name. We hope that if the user has icudata installed on their
-- # system, then they also have icu18n and icuuc installed.
-- conf.env['LIBDEPS_ICUI18N_SYSLIBDEP'] = 'icui18n'
-- conf.env['LIBDEPS_ICUUC_SYSLIBDEP'] = 'icuuc'
-+ conf.FindSysLibDep("icuuc", ["icuuc"])
-+ conf.FindSysLibDep("icui18n", ["icui18n"])
-+
-+ if use_system_version_of_library("mozjs"):
-+ conf.FindSysLibDep("mozjs", [jsEngine])
-
- if wiredtiger and use_system_version_of_library("wiredtiger"):
- if not conf.CheckCXXHeader( "wiredtiger.h" ):
- myenv.ConfError("Cannot find wiredtiger headers")
- conf.FindSysLibDep("wiredtiger", ["wiredtiger"])
-
-+ if use_system_version_of_library("asio"):
-+ conf.CheckCXXHeader("asio.hpp")
-+
- conf.env.Append(
- CPPDEFINES=[
- "BOOST_SYSTEM_NO_DEPRECATED",
-@@ -3032,7 +3037,7 @@ def doConfigure(myenv):
- if conf.CheckExtendedAlignment(size):
- conf.env.SetConfigHeaderDefine("MONGO_CONFIG_MAX_EXTENDED_ALIGNMENT", size)
- break
--
-+
- conf.env['MONGO_HAVE_LIBMONGOC'] = conf.CheckLibWithHeader(
- ["mongoc-1.0"],
- ["mongoc.h"],
-@@ -3172,7 +3177,7 @@ Export("get_option")
- Export("has_option")
- Export("use_system_version_of_library")
- Export("serverJs")
--Export("usemozjs")
-+Export("usemozjs jsEngine")
- Export('module_sconscripts')
- Export("debugBuild optBuild")
- Export("wiredtiger")
-diff --git a/src/third_party/SConscript b/src/third_party/SConscript
-index 69c4a02a61..08c37aa89b 100644
---- a/src/third_party/SConscript
-+++ b/src/third_party/SConscript
-@@ -2,7 +2,7 @@
-
- import libdeps
-
--Import("env use_system_version_of_library usemozjs get_option")
-+Import("env use_system_version_of_library usemozjs jsEngine get_option")
- Import("wiredtiger")
-
- boostSuffix = "-1.60.0"
-@@ -51,12 +51,15 @@ if not use_system_version_of_library('zlib'):
- # hasn't offered a source tarball since 24, but in theory they could.
- #
- #if not use_system_version_of_library('mozjs'):
--if True:
-+if not use_system_version_of_library('mozjs'):
- thirdPartyIncludePathList.append(
- ('mozjs', ['#/src/third_party/mozjs' + mozjsSuffix + '/include',
- '#/src/third_party/mozjs' + mozjsSuffix + '/mongo_sources',
- '#/src/third_party/mozjs' + mozjsSuffix + '/platform/' + env["TARGET_ARCH"] + "/" + env["TARGET_OS"] + "/include",
- ]))
-+else:
-+ thirdPartyIncludePathList.append(
-+ ('mozjs', ['#/src/third_party/mozjs' + mozjsSuffix + '/mongo_sources', '/usr/include/'+jsEngine, ]))
-
- if "tom" in env["MONGO_CRYPTO"]:
- thirdPartyIncludePathList.append(
-@@ -223,6 +226,21 @@ if usemozjs:
- 'shim_zlib',
- ])
-
-+ if use_system_version_of_library("mozjs"):
-+ env.InjectThirdPartyIncludePaths(libraries=['mozjs'])
-+ mozjsEnv = env.Clone(
-+ SYSLIBDEPS=[
-+ env['LIBDEPS_MOZJS_SYSLIBDEP'],
-+ ])
-+ else:
-+ mozjsEnv = env.Clone()
-+ mozjsEnv.SConscript('mozjs' + mozjsSuffix + '/SConscript', exports={'env' : mozjsEnv })
-+ mozjsEnv = mozjsEnv.Clone(
-+ LIBDEPS=[
-+ 'mozjs' + mozjsSuffix + '/mozjs',
-+ 'shim_zlib',
-+ ])
-+
- mozjsEnv.Library(
- target="shim_mozjs",
- source=[
5 years, 11 months
Architecture specific change in rpms/mongodb.git
by githook-noreply@fedoraproject.org
The package rpms/mongodb.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/mongodb.git/commit/?id=a1f26e6c71....
Change:
-%ifnarch %{upstream_arches}
Thanks.
Full change:
============
commit a1f26e6c71e4c3fa269573183e011ce73cfa05c2
Author: Marek Skalický <mskalick(a)redhat.com>
Date: Fri Jun 8 15:05:33 2018 +0200
Use bundled mozjs45 on all architectures
- carry patch with generated mozjs45 config and sources for i686,
ppc64 and arm architectures
(see private-mskalick-mozjs_gen branch for spec used to generate
patch)
diff --git a/mongodb.spec b/mongodb.spec
index 64d57fb..5e84d33 100644
--- a/mongodb.spec
+++ b/mongodb.spec
@@ -65,8 +65,8 @@ Source11: README
# Fix build system to allow building with system version of libraries (mozjs, icu and asio)
# - needed for building additional architectures
-# https://jira.mongodb.org/browse/SERVER-21353
-Patch0: use-system-mozjs-icu-asio.patch
+# https://jira.mongodb.org/browse/SERVER-21353 -> now patching bundled mozjs45 - see patch23
+#Patch0: use-system-mozjs-icu-asio.patch
# Convert build scripts and testsuite to support python3
# https://jira.mongodb.org/browse/SERVER-32295
@@ -89,7 +89,8 @@ Patch20: ppc64.patch
Patch22: ppc64-altivec.patch
# Add support also for 32bit platforms
Patch21: 32bit-support.patch
-
+# Generate code for ppc64, arm and i386 arches
+Patch23: ppc64-arm-i386-mozjs-code.patch
BuildRequires: gcc-c++ >= 5.3.0
BuildRequires: boost-devel >= 1.56
@@ -103,9 +104,6 @@ BuildRequires: python3-scons
BuildRequires: snappy-devel
BuildRequires: yaml-cpp-devel
BuildRequires: zlib-devel
-%ifnarch %{upstream_arches}
-BuildRequires: mozjs%{mozjsVersion}-devel
-%endif
BuildRequires: valgrind-devel
%if 0%{?fedora} >= 15 || 0%{?rhel} >= 7
BuildRequires: systemd
@@ -172,10 +170,8 @@ Provides: bundled(icu) = 57.1
Provides: bundled(IntelRDFPMathLib) = 20U1
# https://github.com/derickr/timelib
Provides: bundled(timelib) = 2017.05beta10
-%ifarch %{upstream_arches}
# MongoDB does provides mozjs customization to recover from OOM
-Provides: bundled(mozjs45) = 45.5.0
-%endif
+Provides: bundled(mozjs45) = 45.8.0
%description server
This package provides the mongo server software, mongo sharding server
@@ -201,19 +197,19 @@ the MongoDB sources.
%setup -q -n %{MONGO_DISTNAME}
%patch1 -p1
%patch2 -p1
-%ifarch ppc64le ppc64
%patch3 -p1
-%endif
# Patch only Fedora specific architectures
%ifnarch %{upstream_arches}
-%patch0 -p1
%patch20 -p1
-%ifarch ppc64
%patch22 -p1
-%endif
%patch21 -p1
+%patch23 -p1
+
+# For mongodb <=3.6 mozjs sources are generated wrong
+sed -i -e "/extract\/js\/src\/jit\/ProcessExecutableMemory.cpp/d" src/third_party/mozjs-45/SConscript
%endif
+
# CRLF -> LF
sed -i 's/\r//' README
@@ -294,16 +290,11 @@ cat > build-options << EOF
%ifarch s390x
--use-s390x-crc32=off \
%endif
-%ifnarch %{upstream_arches}
- --use-system-mozjs \
- --js-engine=mozjs-%{mozjsVersion} \
-%endif
--ssl \
--nostrip \
--disable-warnings-as-errors \
--variables-files=variables.list
EOF
-# --use-system-asio \
# see output of "scons --help" for options
scons-3 core tools $(cat build-options)
diff --git a/ppc64-arm-i386-mozjs-code.patch b/ppc64-arm-i386-mozjs-code.patch
new file mode 100644
index 0000000..e36ba29
--- /dev/null
+++ b/ppc64-arm-i386-mozjs-code.patch
@@ -0,0 +1,7079 @@
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src0.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src0.cpp
+new file mode 100644
+index 0000000000..3392352d8b
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src0.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "asmjs/AsmJSFrameIterator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSFrameIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSFrameIterator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSLink.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSLink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSLink.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSModule.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSModule.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSModule.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSSignalHandlers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSSignalHandlers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSSignalHandlers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSValidate.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSValidate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSValidate.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/WasmGenerator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmGenerator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src1.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src1.cpp
+new file mode 100644
+index 0000000000..a6b717f374
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src1.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "asmjs/WasmIonCompile.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmIonCompile.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmIonCompile.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/WasmStubs.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmStubs.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmStubs.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/AtomicsObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/AtomicsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/AtomicsObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Eval.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Eval.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Eval.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Intl.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Intl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Intl.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/MapObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/MapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/MapObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src10.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src10.cpp
+new file mode 100644
+index 0000000000..8790c5fa8e
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src10.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/BaselineFrameInfo.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineFrameInfo.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineFrameInfo.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineInspector.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineInspector.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineInspector.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineJIT.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineJIT.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineJIT.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BitSet.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BitSet.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BitSet.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BytecodeAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BytecodeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BytecodeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src11.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src11.cpp
+new file mode 100644
+index 0000000000..39333e8bbd
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src11.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/C1Spewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/C1Spewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/C1Spewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/CodeGenerator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/CodeGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/CodeGenerator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/CompileWrappers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/CompileWrappers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/CompileWrappers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Disassembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Disassembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Disassembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/EagerSimdUnbox.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EagerSimdUnbox.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EagerSimdUnbox.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/EdgeCaseAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EdgeCaseAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EdgeCaseAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src12.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src12.cpp
+new file mode 100644
+index 0000000000..c2ccff74ad
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src12.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/EffectiveAddressAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EffectiveAddressAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EffectiveAddressAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/ExecutableAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ExecutableAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ExecutableAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/InstructionReordering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/InstructionReordering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/InstructionReordering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Ion.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Ion.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Ion.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonBuilder.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonBuilder.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonBuilder.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src13.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src13.cpp
+new file mode 100644
+index 0000000000..61225a9350
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src13.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/IonCaches.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonCaches.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonCaches.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonOptimizationLevels.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonOptimizationLevels.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonOptimizationLevels.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JSONSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JSONSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JSONSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitFrames.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitFrames.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitFrames.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitOptions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitOptions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitOptions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src14.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src14.cpp
+new file mode 100644
+index 0000000000..69f4d54cd5
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src14.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/JitcodeMap.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitcodeMap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitcodeMap.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LICM.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LICM.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LICM.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LIR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LIR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LoopUnroller.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LoopUnroller.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LoopUnroller.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Lowering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Lowering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Lowering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MCallOptimize.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MCallOptimize.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MCallOptimize.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src15.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src15.cpp
+new file mode 100644
+index 0000000000..544491554b
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src15.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/MIR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MIR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MIRGraph.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MIRGraph.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MIRGraph.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MoveResolver.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MoveResolver.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MoveResolver.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/OptimizationTracking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/OptimizationTracking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/OptimizationTracking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/PerfSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/PerfSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/PerfSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src16.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src16.cpp
+new file mode 100644
+index 0000000000..d8c2a53bb3
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src16.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/ProcessExecutableMemory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ProcessExecutableMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ProcessExecutableMemory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RangeAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RangeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RangeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Recover.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Recover.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Recover.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RegisterAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RegisterAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RegisterAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RematerializedFrame.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RematerializedFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RematerializedFrame.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Safepoints.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Safepoints.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Safepoints.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src17.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src17.cpp
+new file mode 100644
+index 0000000000..c0fda43387
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src17.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/ScalarReplacement.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ScalarReplacement.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ScalarReplacement.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/SharedIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/SharedIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/SharedIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Sink.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Sink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Sink.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Snapshots.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Snapshots.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Snapshots.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/StupidAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/StupidAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/StupidAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/TypePolicy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/TypePolicy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/TypePolicy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src18.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src18.cpp
+new file mode 100644
+index 0000000000..0f4d9527c3
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src18.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/TypedObjectPrediction.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/TypedObjectPrediction.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/TypedObjectPrediction.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/VMFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/VMFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/VMFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/ValueNumbering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ValueNumbering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ValueNumbering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/Architecture-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/Architecture-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/Architecture-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/Assembler-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/Assembler-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/Assembler-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/Bailouts-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/Bailouts-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/Bailouts-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src19.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src19.cpp
+new file mode 100644
+index 0000000000..60669a66ab
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src19.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/arm/BaselineCompiler-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/BaselineCompiler-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/BaselineCompiler-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/BaselineIC-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/BaselineIC-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/BaselineIC-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/CodeGenerator-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/CodeGenerator-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/CodeGenerator-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/Lowering-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/Lowering-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/Lowering-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/MacroAssembler-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/MacroAssembler-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/MacroAssembler-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/MoveEmitter-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/MoveEmitter-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/MoveEmitter-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src2.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src2.cpp
+new file mode 100644
+index 0000000000..f9ee5a1f37
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src2.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "builtin/ModuleObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/ModuleObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/ModuleObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Object.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Object.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Object.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Profilers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Profilers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Profilers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Reflect.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Reflect.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Reflect.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/ReflectParse.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/ReflectParse.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/ReflectParse.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/SIMD.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/SIMD.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/SIMD.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src20.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src20.cpp
+new file mode 100644
+index 0000000000..8f535341f5
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src20.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/arm/SharedIC-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/SharedIC-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/SharedIC-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/Trampoline-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/Trampoline-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/Trampoline-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/disasm/Constants-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/disasm/Constants-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/disasm/Constants-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/arm/disasm/Disasm-arm.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/arm/disasm/Disasm-arm.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/arm/disasm/Disasm-arm.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/shared/BaselineCompiler-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/BaselineCompiler-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/BaselineCompiler-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/shared/CodeGenerator-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/CodeGenerator-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/CodeGenerator-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src21.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src21.cpp
+new file mode 100644
+index 0000000000..c4d8192b3b
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src21.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/shared/Lowering-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/Lowering-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/Lowering-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsalloc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsalloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsalloc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsapi.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsapi.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsbool.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsbool.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsbool.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jscntxt.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jscntxt.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jscntxt.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jscompartment.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jscompartment.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jscompartment.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src22.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src22.cpp
+new file mode 100644
+index 0000000000..4014315c08
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src22.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsdate.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsdate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsdate.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsdtoa.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsdtoa.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsdtoa.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsexn.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsexn.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsexn.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsfriendapi.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsfriendapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsfriendapi.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsfun.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsfun.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsfun.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsgc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsgc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsgc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src23.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src23.cpp
+new file mode 100644
+index 0000000000..aba9fc0cb4
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src23.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsiter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsiter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsiter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsnativestack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsnativestack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsnativestack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsnum.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsnum.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsnum.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsobj.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsobj.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsobj.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "json.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "json.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "json.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsopcode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsopcode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsopcode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src24.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src24.cpp
+new file mode 100644
+index 0000000000..5a610ef6ac
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src24.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsprf.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsprf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsprf.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jspropertytree.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jspropertytree.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jspropertytree.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsscript.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsscript.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsscript.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsstr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsstr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsstr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jswatchpoint.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jswatchpoint.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jswatchpoint.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsweakmap.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsweakmap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsweakmap.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src25.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src25.cpp
+new file mode 100644
+index 0000000000..357fb8b6a9
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src25.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "perf/jsperf.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "perf/jsperf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "perf/jsperf.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/BaseProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/BaseProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/BaseProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/CrossCompartmentWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/CrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/CrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/DeadObjectProxy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/DeadObjectProxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/DeadObjectProxy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/DirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/DirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/DirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/OpaqueCrossCompartmentWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/OpaqueCrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/OpaqueCrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src26.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src26.cpp
+new file mode 100644
+index 0000000000..c9a4e53f85
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src26.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "proxy/Proxy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/Proxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/Proxy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/ScriptedDirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/ScriptedDirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/ScriptedDirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/ScriptedIndirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/ScriptedIndirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/ScriptedIndirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/SecurityWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/SecurityWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/SecurityWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/Wrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/Wrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/Wrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ArgumentsObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ArgumentsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ArgumentsObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src27.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src27.cpp
+new file mode 100644
+index 0000000000..aa66b36fb1
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src27.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/ArrayBufferObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ArrayBufferObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ArrayBufferObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/CallNonGenericMethod.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CallNonGenericMethod.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CallNonGenericMethod.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/CharacterEncoding.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CharacterEncoding.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CharacterEncoding.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/CodeCoverage.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CodeCoverage.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CodeCoverage.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Compression.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Compression.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Compression.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/DateTime.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/DateTime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/DateTime.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src28.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src28.cpp
+new file mode 100644
+index 0000000000..3d98b61795
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src28.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Debugger.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Debugger.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Debugger.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/DebuggerMemory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/DebuggerMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/DebuggerMemory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ErrorObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ErrorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ErrorObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ForOfIterator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ForOfIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ForOfIterator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/GeneratorObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/GeneratorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/GeneratorObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/GlobalObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/GlobalObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/GlobalObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src29.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src29.cpp
+new file mode 100644
+index 0000000000..86af1e7327
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src29.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/HelperThreads.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/HelperThreads.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/HelperThreads.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Id.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Id.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Id.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Interpreter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Interpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Interpreter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/JSONParser.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/JSONParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/JSONParser.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/MemoryMetrics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/MemoryMetrics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/MemoryMetrics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Monitor.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Monitor.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Monitor.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src3.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src3.cpp
+new file mode 100644
+index 0000000000..32bd1caa82
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src3.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "builtin/SymbolObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/SymbolObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/SymbolObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/TestingFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/TestingFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/TestingFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/TypedObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/TypedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/TypedObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/WeakMapObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/WeakMapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/WeakMapObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/WeakSetObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/WeakSetObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/WeakSetObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "devtools/sharkctl.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "devtools/sharkctl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "devtools/sharkctl.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src30.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src30.cpp
+new file mode 100644
+index 0000000000..9e43dfb736
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src30.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/NativeObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/NativeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/NativeObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ObjectGroup.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ObjectGroup.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ObjectGroup.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/PIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/PIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/PIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/PosixNSPR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/PosixNSPR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/PosixNSPR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Printer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Printer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Printer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Probes.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Probes.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Probes.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src31.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src31.cpp
+new file mode 100644
+index 0000000000..e4ac196768
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src31.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/ProxyObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ProxyObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ProxyObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ReceiverGuard.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ReceiverGuard.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ReceiverGuard.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/RegExpObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/RegExpObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/RegExpObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/RegExpStatics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/RegExpStatics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/RegExpStatics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Runtime.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Runtime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Runtime.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SPSProfiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SPSProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SPSProfiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src32.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src32.cpp
+new file mode 100644
+index 0000000000..a702a115ae
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src32.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/SavedStacks.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SavedStacks.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SavedStacks.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ScopeObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ScopeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ScopeObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SelfHosting.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SelfHosting.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SelfHosting.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Shape.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Shape.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Shape.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SharedArrayObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SharedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SharedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Stack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Stack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Stack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src33.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src33.cpp
+new file mode 100644
+index 0000000000..b106a07280
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src33.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Stopwatch.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Stopwatch.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Stopwatch.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/String.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/String.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/String.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/StringBuffer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/StringBuffer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/StringBuffer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/StructuredClone.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/StructuredClone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/StructuredClone.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Symbol.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Symbol.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Symbol.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/TaggedProto.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TaggedProto.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TaggedProto.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src34.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src34.cpp
+new file mode 100644
+index 0000000000..e66ddb3e8a
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src34.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Time.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Time.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Time.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/TypeInference.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TypeInference.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TypeInference.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/TypedArrayObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TypedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TypedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UbiNode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UbiNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UbiNode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UbiNodeCensus.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UbiNodeCensus.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UbiNodeCensus.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UnboxedObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UnboxedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UnboxedObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src35.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src35.cpp
+new file mode 100644
+index 0000000000..bcf3f00370
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src35.cpp
+@@ -0,0 +1,37 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Unicode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Unicode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Unicode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Value.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Value.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Value.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/WeakMapPtr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/WeakMapPtr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/WeakMapPtr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Xdr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Xdr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Xdr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src4.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src4.cpp
+new file mode 100644
+index 0000000000..44163573c9
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src4.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "ds/LifoAlloc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "ds/LifoAlloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "ds/LifoAlloc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/BytecodeCompiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/BytecodeCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/BytecodeCompiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/BytecodeEmitter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/BytecodeEmitter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/BytecodeEmitter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/FoldConstants.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/FoldConstants.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/FoldConstants.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/NameFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/NameFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/NameFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/ParseMaps.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/ParseMaps.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/ParseMaps.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src5.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src5.cpp
+new file mode 100644
+index 0000000000..4a056d0b55
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src5.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "frontend/ParseNode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/ParseNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/ParseNode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/TokenStream.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/TokenStream.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/TokenStream.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Allocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Allocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Allocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Barrier.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Barrier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Barrier.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/GCTrace.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/GCTrace.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/GCTrace.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Iteration.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Iteration.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Iteration.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src6.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src6.cpp
+new file mode 100644
+index 0000000000..2c0af2b856
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src6.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "gc/Marking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Marking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Marking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Memory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Memory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Memory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/MemoryProfiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/MemoryProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/MemoryProfiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Nursery.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Nursery.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Nursery.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/RootMarking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/RootMarking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/RootMarking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Statistics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Statistics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Statistics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src7.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src7.cpp
+new file mode 100644
+index 0000000000..edc5d0ddec
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src7.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "gc/Tracer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Tracer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Tracer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Verifier.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Verifier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Verifier.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Zone.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Zone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Zone.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/NativeRegExpMacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/NativeRegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/NativeRegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpAST.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpAST.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpAST.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpEngine.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpEngine.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpEngine.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src8.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src8.cpp
+new file mode 100644
+index 0000000000..4150698a38
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src8.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "irregexp/RegExpInterpreter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpInterpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpInterpreter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpMacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpParser.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpParser.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpStack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpStack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpStack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/AliasAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/AliasAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/AliasAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/AlignmentMaskAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/AlignmentMaskAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/AlignmentMaskAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src9.cpp b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src9.cpp
+new file mode 100644
+index 0000000000..a02b358e40
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/Unified_cpp_js_src9.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/BacktrackingAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BacktrackingAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BacktrackingAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Bailouts.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Bailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Bailouts.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineBailouts.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineBailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineBailouts.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineCompiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineCompiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineDebugModeOSR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineDebugModeOSR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineDebugModeOSR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineFrame.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineFrame.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/build/js-confdefs.h b/src/third_party/mozjs-45/platform/arm/linux/build/js-confdefs.h
+new file mode 100644
+index 0000000000..c24f52dc23
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/build/js-confdefs.h
+@@ -0,0 +1,100 @@
++/* List of defines generated by configure. Included with preprocessor flag,
++ * -include, to avoid long list of -D defines on the compile command-line.
++ * Do not edit.
++ */
++
++#ifndef js_confdefs_h
++#define js_confdefs_h
++
++#define BUILD_ARM_NEON 1
++#define CPP_THROW_NEW throw()
++#define D_INO d_ino
++#define EDITLINE 1
++#define HAVE_ACOSH 1
++#define HAVE_ALLOCA_H 1
++#define HAVE_ARM_NEON 1
++#define HAVE_ARM_SIMD 1
++#define HAVE_ASINH 1
++#define HAVE_ATANH 1
++#define HAVE_CBRT 1
++#define HAVE_CLOCK_MONOTONIC 1
++#define HAVE_CPP_AMBIGUITY_RESOLVING_USING 1
++#define HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR 1
++#define HAVE_DIRENT_H 1
++#define HAVE_DLOPEN 1
++#define HAVE_ENDIAN_H 1
++#define HAVE_EXPM1 1
++#define HAVE_GETC_UNLOCKED 1
++#define HAVE_GETOPT_H 1
++#define HAVE_GMTIME_R 1
++#define HAVE_GNU_LIBC_VERSION_H 1
++#define HAVE_I18N_LC_MESSAGES 1
++#define HAVE_LANGINFO_CODESET 1
++#define HAVE_LIBM 1
++#define HAVE_LINUX_QUOTA_H 1
++#define HAVE_LOCALECONV 1
++#define HAVE_LOCALECONV 1
++#define HAVE_LOCALTIME_R 1
++#define HAVE_LOG1P 1
++#define HAVE_LOG2 1
++#define HAVE_MALLOC_H 1
++#define HAVE_MALLOC_H 1
++#define HAVE_MALLOC_USABLE_SIZE 1
++#define HAVE_MBRTOWC 1
++#define HAVE_MEMALIGN 1
++#define HAVE_MEMORY_H 1
++#define HAVE_NL_TYPES_H 1
++#define HAVE_POSIX_FADVISE 1
++#define HAVE_POSIX_FALLOCATE 1
++#define HAVE_POSIX_MEMALIGN 1
++#define HAVE_RES_NINIT 1
++#define HAVE_SETLOCALE 1
++#define HAVE_SSIZE_T 1
++#define HAVE_STRNDUP 1
++#define HAVE_SYS_BITYPES_H 1
++#define HAVE_SYS_CDEFS_H 1
++#define HAVE_SYS_MOUNT_H 1
++#define HAVE_SYS_QUOTA_H 1
++#define HAVE_SYS_STATFS_H 1
++#define HAVE_SYS_STATVFS_H 1
++#define HAVE_SYS_VFS_H 1
++#define HAVE_THREAD_TLS_KEYWORD 1
++#define HAVE_TM_ZONE_TM_GMTOFF 1
++#define HAVE_UNISTD_H 1
++#define HAVE_VALLOC 1
++#define HAVE_VA_COPY 1
++#define HAVE_VISIBILITY_ATTRIBUTE 1
++#define HAVE_VISIBILITY_HIDDEN_ATTRIBUTE 1
++#define HAVE_WCRTOMB 1
++#define HAVE___CXA_DEMANGLE 1
++#define JS_CODEGEN_ARM 1
++#define JS_CPU_ARM 1
++#define JS_DEFAULT_JITREPORT_GRANULARITY 3
++#define JS_HAVE_ENDIAN_H 1
++#define JS_NUNBOX32 1
++#define JS_POSIX_NSPR 1
++#define JS_STANDALONE 1
++#define MALLOC_H <malloc.h>
++#define MALLOC_USABLE_SIZE_CONST_PTR
++#define MOZILLA_UAVERSION "45.0"
++#define MOZILLA_VERSION "45.8.0"
++#define MOZILLA_VERSION_U 45.8.0
++#define MOZJS_MAJOR_VERSION 45
++#define MOZJS_MINOR_VERSION 8
++#define MOZ_DEBUG_SYMBOLS 1
++#define MOZ_DLL_SUFFIX ".so"
++#define MOZ_GLUE_IN_PROGRAM 1
++#define MOZ_MEMORY 1
++#define MOZ_MEMORY_LINUX 1
++#define MOZ_UPDATE_CHANNEL default
++#define NO_NSPR_10_SUPPORT 1
++#define RELEASE_BUILD 1
++#define STDC_HEADERS 1
++#define VA_COPY va_copy
++#define XP_UNIX 1
++#define X_DISPLAY_MISSING 1
++#define _REENTRANT 1
++
++#include "js/RequiredDefines.h"
++
++#endif /* js_confdefs_h */
+diff --git a/src/third_party/mozjs-45/platform/arm/linux/include/js-config.h b/src/third_party/mozjs-45/platform/arm/linux/include/js-config.h
+new file mode 100644
+index 0000000000..a5645020e0
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/arm/linux/include/js-config.h
+@@ -0,0 +1,59 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
++ * vim: set ts=8 sw=4 et tw=78:
++ *
++ * This Source Code Form is subject to the terms of the Mozilla Public
++ * License, v. 2.0. If a copy of the MPL was not distributed with this
++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
++
++#ifndef js_config_h
++#define js_config_h
++
++/* Definitions set at build time that affect SpiderMonkey's public API.
++ This header file is generated by the SpiderMonkey configure script,
++ and installed along with jsapi.h. */
++
++/* Define to 1 if SpiderMonkey is in debug mode. */
++/* #undef JS_DEBUG */
++
++/* Define to 1 if SpiderMonkey should not use struct types in debug builds. */
++/* #undef JS_NO_JSVAL_JSID_STRUCT_TYPES */
++
++/* Define to 1 if SpiderMonkey should support multi-threaded clients. */
++/* #undef JS_THREADSAFE */
++
++/* Define to 1 if SpiderMonkey should include ctypes support. */
++/* #undef JS_HAS_CTYPES */
++
++/* Define to 1 if SpiderMonkey should support the ability to perform
++ entirely too much GC. */
++/* #undef JS_GC_ZEAL */
++
++/* Define to 1 if SpiderMonkey should use small chunks. */
++/* #undef JS_GC_SMALL_CHUNK_SIZE */
++
++/* Define to 1 to perform extra assertions and heap poisoning. */
++/* #undef JS_CRASH_DIAGNOSTICS */
++
++/* Define to 1 if the <endian.h> header is present and
++ useable. See jscpucfg.h. */
++#define JS_HAVE_ENDIAN_H 1
++
++/* Define to 1 if the <machine/endian.h> header is present and
++ useable. See jscpucfg.h. */
++/* #undef JS_HAVE_MACHINE_ENDIAN_H */
++
++/* Define to 1 if the <sys/isa_defs.h> header is present and
++ useable. See jscpucfg.h. */
++/* #undef JS_HAVE_SYS_ISA_DEFS_H */
++
++/* Define to 1 if SpiderMonkey is in NUNBOX32 mode. */
++#define JS_NUNBOX32 1
++
++/* Define to 1 if SpiderMonkey is in PUNBOX64 mode. */
++/* #undef JS_PUNBOX64 */
++
++/* MOZILLA JSAPI version number components */
++#define MOZJS_MAJOR_VERSION 45
++#define MOZJS_MINOR_VERSION 8
++
++#endif /* js_config_h */
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src0.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src0.cpp
+new file mode 100644
+index 0000000000..3392352d8b
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src0.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "asmjs/AsmJSFrameIterator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSFrameIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSFrameIterator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSLink.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSLink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSLink.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSModule.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSModule.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSModule.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSSignalHandlers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSSignalHandlers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSSignalHandlers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSValidate.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSValidate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSValidate.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/WasmGenerator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmGenerator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src1.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src1.cpp
+new file mode 100644
+index 0000000000..a6b717f374
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src1.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "asmjs/WasmIonCompile.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmIonCompile.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmIonCompile.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/WasmStubs.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmStubs.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmStubs.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/AtomicsObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/AtomicsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/AtomicsObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Eval.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Eval.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Eval.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Intl.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Intl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Intl.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/MapObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/MapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/MapObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src10.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src10.cpp
+new file mode 100644
+index 0000000000..8790c5fa8e
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src10.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/BaselineFrameInfo.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineFrameInfo.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineFrameInfo.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineInspector.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineInspector.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineInspector.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineJIT.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineJIT.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineJIT.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BitSet.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BitSet.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BitSet.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BytecodeAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BytecodeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BytecodeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src11.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src11.cpp
+new file mode 100644
+index 0000000000..39333e8bbd
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src11.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/C1Spewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/C1Spewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/C1Spewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/CodeGenerator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/CodeGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/CodeGenerator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/CompileWrappers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/CompileWrappers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/CompileWrappers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Disassembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Disassembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Disassembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/EagerSimdUnbox.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EagerSimdUnbox.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EagerSimdUnbox.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/EdgeCaseAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EdgeCaseAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EdgeCaseAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src12.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src12.cpp
+new file mode 100644
+index 0000000000..c2ccff74ad
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src12.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/EffectiveAddressAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EffectiveAddressAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EffectiveAddressAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/ExecutableAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ExecutableAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ExecutableAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/InstructionReordering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/InstructionReordering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/InstructionReordering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Ion.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Ion.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Ion.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonBuilder.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonBuilder.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonBuilder.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src13.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src13.cpp
+new file mode 100644
+index 0000000000..61225a9350
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src13.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/IonCaches.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonCaches.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonCaches.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonOptimizationLevels.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonOptimizationLevels.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonOptimizationLevels.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JSONSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JSONSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JSONSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitFrames.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitFrames.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitFrames.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitOptions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitOptions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitOptions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src14.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src14.cpp
+new file mode 100644
+index 0000000000..69f4d54cd5
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src14.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/JitcodeMap.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitcodeMap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitcodeMap.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LICM.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LICM.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LICM.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LIR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LIR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LoopUnroller.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LoopUnroller.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LoopUnroller.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Lowering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Lowering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Lowering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MCallOptimize.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MCallOptimize.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MCallOptimize.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src15.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src15.cpp
+new file mode 100644
+index 0000000000..544491554b
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src15.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/MIR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MIR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MIRGraph.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MIRGraph.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MIRGraph.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MoveResolver.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MoveResolver.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MoveResolver.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/OptimizationTracking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/OptimizationTracking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/OptimizationTracking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/PerfSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/PerfSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/PerfSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src16.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src16.cpp
+new file mode 100644
+index 0000000000..d8c2a53bb3
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src16.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/ProcessExecutableMemory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ProcessExecutableMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ProcessExecutableMemory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RangeAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RangeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RangeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Recover.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Recover.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Recover.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RegisterAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RegisterAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RegisterAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RematerializedFrame.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RematerializedFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RematerializedFrame.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Safepoints.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Safepoints.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Safepoints.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src17.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src17.cpp
+new file mode 100644
+index 0000000000..c0fda43387
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src17.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/ScalarReplacement.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ScalarReplacement.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ScalarReplacement.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/SharedIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/SharedIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/SharedIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Sink.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Sink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Sink.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Snapshots.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Snapshots.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Snapshots.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/StupidAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/StupidAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/StupidAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/TypePolicy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/TypePolicy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/TypePolicy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src18.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src18.cpp
+new file mode 100644
+index 0000000000..232559f61e
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src18.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/TypedObjectPrediction.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/TypedObjectPrediction.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/TypedObjectPrediction.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/VMFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/VMFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/VMFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/ValueNumbering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ValueNumbering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ValueNumbering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/shared/BaselineCompiler-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/BaselineCompiler-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/BaselineCompiler-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/shared/CodeGenerator-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/CodeGenerator-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/CodeGenerator-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/shared/Lowering-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/Lowering-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/Lowering-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src19.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src19.cpp
+new file mode 100644
+index 0000000000..3bea6cc867
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src19.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/x86-shared/Architecture-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/Architecture-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/Architecture-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86-shared/Assembler-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/Assembler-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/Assembler-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86-shared/AssemblerBuffer-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/AssemblerBuffer-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/AssemblerBuffer-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86-shared/BaselineCompiler-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/BaselineCompiler-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/BaselineCompiler-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86-shared/BaselineIC-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/BaselineIC-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/BaselineIC-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86-shared/CodeGenerator-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/CodeGenerator-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/CodeGenerator-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src2.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src2.cpp
+new file mode 100644
+index 0000000000..f9ee5a1f37
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src2.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "builtin/ModuleObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/ModuleObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/ModuleObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Object.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Object.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Object.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Profilers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Profilers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Profilers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Reflect.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Reflect.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Reflect.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/ReflectParse.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/ReflectParse.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/ReflectParse.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/SIMD.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/SIMD.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/SIMD.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src20.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src20.cpp
+new file mode 100644
+index 0000000000..47705ef152
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src20.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/x86-shared/Lowering-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/Lowering-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/Lowering-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86-shared/MacroAssembler-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/MacroAssembler-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/MacroAssembler-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86-shared/MoveEmitter-x86-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86-shared/MoveEmitter-x86-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86-shared/MoveEmitter-x86-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86/Assembler-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/Assembler-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/Assembler-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86/Bailouts-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/Bailouts-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/Bailouts-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86/BaselineCompiler-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/BaselineCompiler-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/BaselineCompiler-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src21.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src21.cpp
+new file mode 100644
+index 0000000000..8df3bcb0a1
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src21.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/x86/BaselineIC-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/BaselineIC-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/BaselineIC-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86/CodeGenerator-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/CodeGenerator-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/CodeGenerator-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86/Lowering-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/Lowering-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/Lowering-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86/MacroAssembler-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/MacroAssembler-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/MacroAssembler-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86/SharedIC-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/SharedIC-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/SharedIC-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/x86/Trampoline-x86.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/x86/Trampoline-x86.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/x86/Trampoline-x86.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src22.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src22.cpp
+new file mode 100644
+index 0000000000..3f735d3edd
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src22.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsalloc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsalloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsalloc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsapi.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsapi.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsbool.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsbool.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsbool.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jscntxt.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jscntxt.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jscntxt.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jscompartment.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jscompartment.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jscompartment.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsdate.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsdate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsdate.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src23.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src23.cpp
+new file mode 100644
+index 0000000000..657a68b468
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src23.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsdtoa.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsdtoa.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsdtoa.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsexn.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsexn.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsexn.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsfriendapi.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsfriendapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsfriendapi.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsfun.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsfun.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsfun.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsgc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsgc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsgc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsiter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsiter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsiter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src24.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src24.cpp
+new file mode 100644
+index 0000000000..3aef296444
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src24.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsnativestack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsnativestack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsnativestack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsnum.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsnum.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsnum.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsobj.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsobj.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsobj.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "json.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "json.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "json.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsopcode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsopcode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsopcode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsprf.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsprf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsprf.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src25.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src25.cpp
+new file mode 100644
+index 0000000000..10ed87fb89
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src25.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jspropertytree.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jspropertytree.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jspropertytree.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsscript.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsscript.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsscript.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsstr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsstr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsstr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jswatchpoint.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jswatchpoint.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jswatchpoint.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsweakmap.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsweakmap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsweakmap.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "perf/jsperf.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "perf/jsperf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "perf/jsperf.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src26.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src26.cpp
+new file mode 100644
+index 0000000000..bac2403397
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src26.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "proxy/BaseProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/BaseProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/BaseProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/CrossCompartmentWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/CrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/CrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/DeadObjectProxy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/DeadObjectProxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/DeadObjectProxy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/DirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/DirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/DirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/OpaqueCrossCompartmentWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/OpaqueCrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/OpaqueCrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/Proxy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/Proxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/Proxy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src27.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src27.cpp
+new file mode 100644
+index 0000000000..df8578f2c5
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src27.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "proxy/ScriptedDirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/ScriptedDirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/ScriptedDirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/ScriptedIndirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/ScriptedIndirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/ScriptedIndirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/SecurityWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/SecurityWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/SecurityWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/Wrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/Wrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/Wrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ArgumentsObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ArgumentsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ArgumentsObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ArrayBufferObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ArrayBufferObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ArrayBufferObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src28.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src28.cpp
+new file mode 100644
+index 0000000000..e53e4a3893
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src28.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/CallNonGenericMethod.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CallNonGenericMethod.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CallNonGenericMethod.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/CharacterEncoding.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CharacterEncoding.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CharacterEncoding.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/CodeCoverage.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CodeCoverage.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CodeCoverage.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Compression.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Compression.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Compression.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/DateTime.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/DateTime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/DateTime.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Debugger.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Debugger.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Debugger.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src29.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src29.cpp
+new file mode 100644
+index 0000000000..6273bb76f2
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src29.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/DebuggerMemory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/DebuggerMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/DebuggerMemory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ErrorObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ErrorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ErrorObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ForOfIterator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ForOfIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ForOfIterator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/GeneratorObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/GeneratorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/GeneratorObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/GlobalObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/GlobalObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/GlobalObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/HelperThreads.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/HelperThreads.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/HelperThreads.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src3.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src3.cpp
+new file mode 100644
+index 0000000000..32bd1caa82
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src3.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "builtin/SymbolObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/SymbolObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/SymbolObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/TestingFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/TestingFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/TestingFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/TypedObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/TypedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/TypedObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/WeakMapObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/WeakMapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/WeakMapObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/WeakSetObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/WeakSetObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/WeakSetObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "devtools/sharkctl.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "devtools/sharkctl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "devtools/sharkctl.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src30.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src30.cpp
+new file mode 100644
+index 0000000000..ecf387ffae
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src30.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Id.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Id.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Id.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Interpreter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Interpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Interpreter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/JSONParser.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/JSONParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/JSONParser.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/MemoryMetrics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/MemoryMetrics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/MemoryMetrics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Monitor.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Monitor.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Monitor.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/NativeObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/NativeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/NativeObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src31.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src31.cpp
+new file mode 100644
+index 0000000000..6e3bd65c07
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src31.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/ObjectGroup.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ObjectGroup.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ObjectGroup.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/PIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/PIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/PIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/PosixNSPR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/PosixNSPR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/PosixNSPR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Printer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Printer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Printer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Probes.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Probes.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Probes.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ProxyObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ProxyObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ProxyObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src32.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src32.cpp
+new file mode 100644
+index 0000000000..05f8402e39
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src32.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/ReceiverGuard.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ReceiverGuard.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ReceiverGuard.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/RegExpObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/RegExpObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/RegExpObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/RegExpStatics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/RegExpStatics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/RegExpStatics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Runtime.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Runtime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Runtime.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SPSProfiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SPSProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SPSProfiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SavedStacks.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SavedStacks.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SavedStacks.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src33.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src33.cpp
+new file mode 100644
+index 0000000000..a3a211d45e
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src33.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/ScopeObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ScopeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ScopeObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SelfHosting.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SelfHosting.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SelfHosting.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Shape.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Shape.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Shape.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SharedArrayObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SharedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SharedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Stack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Stack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Stack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Stopwatch.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Stopwatch.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Stopwatch.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src34.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src34.cpp
+new file mode 100644
+index 0000000000..cd1eb2528d
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src34.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/String.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/String.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/String.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/StringBuffer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/StringBuffer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/StringBuffer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/StructuredClone.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/StructuredClone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/StructuredClone.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Symbol.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Symbol.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Symbol.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/TaggedProto.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TaggedProto.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TaggedProto.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Time.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Time.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Time.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src35.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src35.cpp
+new file mode 100644
+index 0000000000..3e46e94426
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src35.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/TypeInference.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TypeInference.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TypeInference.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/TypedArrayObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TypedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TypedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UbiNode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UbiNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UbiNode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UbiNodeCensus.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UbiNodeCensus.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UbiNodeCensus.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UnboxedObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UnboxedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UnboxedObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Unicode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Unicode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Unicode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src36.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src36.cpp
+new file mode 100644
+index 0000000000..e976e6b399
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src36.cpp
+@@ -0,0 +1,28 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Value.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Value.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Value.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/WeakMapPtr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/WeakMapPtr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/WeakMapPtr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Xdr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Xdr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Xdr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src4.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src4.cpp
+new file mode 100644
+index 0000000000..44163573c9
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src4.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "ds/LifoAlloc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "ds/LifoAlloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "ds/LifoAlloc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/BytecodeCompiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/BytecodeCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/BytecodeCompiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/BytecodeEmitter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/BytecodeEmitter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/BytecodeEmitter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/FoldConstants.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/FoldConstants.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/FoldConstants.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/NameFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/NameFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/NameFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/ParseMaps.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/ParseMaps.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/ParseMaps.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src5.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src5.cpp
+new file mode 100644
+index 0000000000..4a056d0b55
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src5.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "frontend/ParseNode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/ParseNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/ParseNode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/TokenStream.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/TokenStream.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/TokenStream.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Allocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Allocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Allocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Barrier.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Barrier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Barrier.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/GCTrace.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/GCTrace.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/GCTrace.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Iteration.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Iteration.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Iteration.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src6.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src6.cpp
+new file mode 100644
+index 0000000000..2c0af2b856
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src6.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "gc/Marking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Marking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Marking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Memory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Memory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Memory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/MemoryProfiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/MemoryProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/MemoryProfiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Nursery.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Nursery.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Nursery.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/RootMarking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/RootMarking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/RootMarking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Statistics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Statistics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Statistics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src7.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src7.cpp
+new file mode 100644
+index 0000000000..edc5d0ddec
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src7.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "gc/Tracer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Tracer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Tracer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Verifier.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Verifier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Verifier.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Zone.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Zone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Zone.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/NativeRegExpMacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/NativeRegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/NativeRegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpAST.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpAST.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpAST.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpEngine.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpEngine.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpEngine.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src8.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src8.cpp
+new file mode 100644
+index 0000000000..4150698a38
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src8.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "irregexp/RegExpInterpreter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpInterpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpInterpreter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpMacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpParser.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpParser.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpStack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpStack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpStack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/AliasAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/AliasAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/AliasAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/AlignmentMaskAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/AlignmentMaskAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/AlignmentMaskAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src9.cpp b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src9.cpp
+new file mode 100644
+index 0000000000..a02b358e40
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/Unified_cpp_js_src9.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/BacktrackingAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BacktrackingAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BacktrackingAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Bailouts.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Bailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Bailouts.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineBailouts.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineBailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineBailouts.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineCompiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineCompiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineDebugModeOSR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineDebugModeOSR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineDebugModeOSR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineFrame.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineFrame.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/build/js-confdefs.h b/src/third_party/mozjs-45/platform/i386/linux/build/js-confdefs.h
+new file mode 100644
+index 0000000000..daa366e1b3
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/build/js-confdefs.h
+@@ -0,0 +1,98 @@
++/* List of defines generated by configure. Included with preprocessor flag,
++ * -include, to avoid long list of -D defines on the compile command-line.
++ * Do not edit.
++ */
++
++#ifndef js_confdefs_h
++#define js_confdefs_h
++
++#define CPP_THROW_NEW throw()
++#define D_INO d_ino
++#define EDITLINE 1
++#define HAVE_ACOSH 1
++#define HAVE_ALLOCA_H 1
++#define HAVE_ASINH 1
++#define HAVE_ATANH 1
++#define HAVE_CBRT 1
++#define HAVE_CLOCK_MONOTONIC 1
++#define HAVE_CPP_AMBIGUITY_RESOLVING_USING 1
++#define HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR 1
++#define HAVE_CPUID_H 1
++#define HAVE_DIRENT_H 1
++#define HAVE_DLOPEN 1
++#define HAVE_ENDIAN_H 1
++#define HAVE_EXPM1 1
++#define HAVE_GETC_UNLOCKED 1
++#define HAVE_GETOPT_H 1
++#define HAVE_GMTIME_R 1
++#define HAVE_GNU_LIBC_VERSION_H 1
++#define HAVE_I18N_LC_MESSAGES 1
++#define HAVE_LANGINFO_CODESET 1
++#define HAVE_LIBM 1
++#define HAVE_LINUX_QUOTA_H 1
++#define HAVE_LOCALECONV 1
++#define HAVE_LOCALECONV 1
++#define HAVE_LOCALTIME_R 1
++#define HAVE_LOG1P 1
++#define HAVE_LOG2 1
++#define HAVE_MALLOC_H 1
++#define HAVE_MALLOC_H 1
++#define HAVE_MALLOC_USABLE_SIZE 1
++#define HAVE_MBRTOWC 1
++#define HAVE_MEMALIGN 1
++#define HAVE_MEMORY_H 1
++#define HAVE_NL_TYPES_H 1
++#define HAVE_POSIX_FADVISE 1
++#define HAVE_POSIX_FALLOCATE 1
++#define HAVE_POSIX_MEMALIGN 1
++#define HAVE_RES_NINIT 1
++#define HAVE_SETLOCALE 1
++#define HAVE_SSIZE_T 1
++#define HAVE_STRNDUP 1
++#define HAVE_SYS_BITYPES_H 1
++#define HAVE_SYS_CDEFS_H 1
++#define HAVE_SYS_MOUNT_H 1
++#define HAVE_SYS_QUOTA_H 1
++#define HAVE_SYS_STATFS_H 1
++#define HAVE_SYS_STATVFS_H 1
++#define HAVE_SYS_VFS_H 1
++#define HAVE_THREAD_TLS_KEYWORD 1
++#define HAVE_TM_ZONE_TM_GMTOFF 1
++#define HAVE_UNISTD_H 1
++#define HAVE_VALLOC 1
++#define HAVE_VA_COPY 1
++#define HAVE_VISIBILITY_ATTRIBUTE 1
++#define HAVE_VISIBILITY_HIDDEN_ATTRIBUTE 1
++#define HAVE_WCRTOMB 1
++#define HAVE___CXA_DEMANGLE 1
++#define JS_CODEGEN_X86 1
++#define JS_CPU_X86 1
++#define JS_DEFAULT_JITREPORT_GRANULARITY 3
++#define JS_HAVE_ENDIAN_H 1
++#define JS_NUNBOX32 1
++#define JS_POSIX_NSPR 1
++#define JS_STANDALONE 1
++#define MALLOC_H <malloc.h>
++#define MALLOC_USABLE_SIZE_CONST_PTR
++#define MOZILLA_UAVERSION "45.0"
++#define MOZILLA_VERSION "45.8.0"
++#define MOZILLA_VERSION_U 45.8.0
++#define MOZJS_MAJOR_VERSION 45
++#define MOZJS_MINOR_VERSION 8
++#define MOZ_DEBUG_SYMBOLS 1
++#define MOZ_DLL_SUFFIX ".so"
++#define MOZ_GLUE_IN_PROGRAM 1
++#define MOZ_MEMORY 1
++#define MOZ_MEMORY_LINUX 1
++#define MOZ_UPDATE_CHANNEL default
++#define NO_NSPR_10_SUPPORT 1
++#define RELEASE_BUILD 1
++#define STDC_HEADERS 1
++#define VA_COPY va_copy
++#define XP_UNIX 1
++#define X_DISPLAY_MISSING 1
++#define _REENTRANT 1
++
++#include "js/RequiredDefines.h"
++
++#endif /* js_confdefs_h */
+diff --git a/src/third_party/mozjs-45/platform/i386/linux/include/js-config.h b/src/third_party/mozjs-45/platform/i386/linux/include/js-config.h
+new file mode 100644
+index 0000000000..a5645020e0
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/i386/linux/include/js-config.h
+@@ -0,0 +1,59 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
++ * vim: set ts=8 sw=4 et tw=78:
++ *
++ * This Source Code Form is subject to the terms of the Mozilla Public
++ * License, v. 2.0. If a copy of the MPL was not distributed with this
++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
++
++#ifndef js_config_h
++#define js_config_h
++
++/* Definitions set at build time that affect SpiderMonkey's public API.
++ This header file is generated by the SpiderMonkey configure script,
++ and installed along with jsapi.h. */
++
++/* Define to 1 if SpiderMonkey is in debug mode. */
++/* #undef JS_DEBUG */
++
++/* Define to 1 if SpiderMonkey should not use struct types in debug builds. */
++/* #undef JS_NO_JSVAL_JSID_STRUCT_TYPES */
++
++/* Define to 1 if SpiderMonkey should support multi-threaded clients. */
++/* #undef JS_THREADSAFE */
++
++/* Define to 1 if SpiderMonkey should include ctypes support. */
++/* #undef JS_HAS_CTYPES */
++
++/* Define to 1 if SpiderMonkey should support the ability to perform
++ entirely too much GC. */
++/* #undef JS_GC_ZEAL */
++
++/* Define to 1 if SpiderMonkey should use small chunks. */
++/* #undef JS_GC_SMALL_CHUNK_SIZE */
++
++/* Define to 1 to perform extra assertions and heap poisoning. */
++/* #undef JS_CRASH_DIAGNOSTICS */
++
++/* Define to 1 if the <endian.h> header is present and
++ useable. See jscpucfg.h. */
++#define JS_HAVE_ENDIAN_H 1
++
++/* Define to 1 if the <machine/endian.h> header is present and
++ useable. See jscpucfg.h. */
++/* #undef JS_HAVE_MACHINE_ENDIAN_H */
++
++/* Define to 1 if the <sys/isa_defs.h> header is present and
++ useable. See jscpucfg.h. */
++/* #undef JS_HAVE_SYS_ISA_DEFS_H */
++
++/* Define to 1 if SpiderMonkey is in NUNBOX32 mode. */
++#define JS_NUNBOX32 1
++
++/* Define to 1 if SpiderMonkey is in PUNBOX64 mode. */
++/* #undef JS_PUNBOX64 */
++
++/* MOZILLA JSAPI version number components */
++#define MOZJS_MAJOR_VERSION 45
++#define MOZJS_MINOR_VERSION 8
++
++#endif /* js_config_h */
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src0.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src0.cpp
+new file mode 100644
+index 0000000000..3392352d8b
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src0.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "asmjs/AsmJSFrameIterator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSFrameIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSFrameIterator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSLink.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSLink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSLink.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSModule.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSModule.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSModule.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSSignalHandlers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSSignalHandlers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSSignalHandlers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/AsmJSValidate.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/AsmJSValidate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/AsmJSValidate.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/WasmGenerator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmGenerator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src1.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src1.cpp
+new file mode 100644
+index 0000000000..a6b717f374
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src1.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "asmjs/WasmIonCompile.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmIonCompile.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmIonCompile.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "asmjs/WasmStubs.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "asmjs/WasmStubs.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "asmjs/WasmStubs.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/AtomicsObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/AtomicsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/AtomicsObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Eval.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Eval.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Eval.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Intl.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Intl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Intl.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/MapObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/MapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/MapObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src10.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src10.cpp
+new file mode 100644
+index 0000000000..8790c5fa8e
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src10.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/BaselineFrameInfo.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineFrameInfo.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineFrameInfo.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineInspector.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineInspector.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineInspector.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineJIT.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineJIT.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineJIT.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BitSet.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BitSet.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BitSet.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BytecodeAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BytecodeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BytecodeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src11.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src11.cpp
+new file mode 100644
+index 0000000000..39333e8bbd
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src11.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/C1Spewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/C1Spewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/C1Spewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/CodeGenerator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/CodeGenerator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/CodeGenerator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/CompileWrappers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/CompileWrappers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/CompileWrappers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Disassembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Disassembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Disassembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/EagerSimdUnbox.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EagerSimdUnbox.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EagerSimdUnbox.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/EdgeCaseAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EdgeCaseAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EdgeCaseAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src12.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src12.cpp
+new file mode 100644
+index 0000000000..c2ccff74ad
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src12.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/EffectiveAddressAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/EffectiveAddressAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/EffectiveAddressAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/ExecutableAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ExecutableAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ExecutableAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/InstructionReordering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/InstructionReordering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/InstructionReordering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Ion.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Ion.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Ion.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonBuilder.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonBuilder.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonBuilder.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src13.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src13.cpp
+new file mode 100644
+index 0000000000..61225a9350
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src13.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/IonCaches.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonCaches.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonCaches.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/IonOptimizationLevels.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/IonOptimizationLevels.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/IonOptimizationLevels.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JSONSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JSONSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JSONSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitFrames.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitFrames.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitFrames.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitOptions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitOptions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitOptions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/JitSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src14.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src14.cpp
+new file mode 100644
+index 0000000000..69f4d54cd5
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src14.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/JitcodeMap.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/JitcodeMap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/JitcodeMap.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LICM.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LICM.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LICM.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LIR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LIR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/LoopUnroller.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/LoopUnroller.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/LoopUnroller.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Lowering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Lowering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Lowering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MCallOptimize.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MCallOptimize.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MCallOptimize.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src15.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src15.cpp
+new file mode 100644
+index 0000000000..544491554b
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src15.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/MIR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MIR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MIR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MIRGraph.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MIRGraph.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MIRGraph.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/MoveResolver.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/MoveResolver.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/MoveResolver.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/OptimizationTracking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/OptimizationTracking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/OptimizationTracking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/PerfSpewer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/PerfSpewer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/PerfSpewer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src16.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src16.cpp
+new file mode 100644
+index 0000000000..d8c2a53bb3
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src16.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/ProcessExecutableMemory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ProcessExecutableMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ProcessExecutableMemory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RangeAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RangeAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RangeAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Recover.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Recover.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Recover.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RegisterAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RegisterAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RegisterAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/RematerializedFrame.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/RematerializedFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/RematerializedFrame.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Safepoints.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Safepoints.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Safepoints.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src17.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src17.cpp
+new file mode 100644
+index 0000000000..c0fda43387
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src17.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/ScalarReplacement.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ScalarReplacement.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ScalarReplacement.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/SharedIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/SharedIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/SharedIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Sink.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Sink.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Sink.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Snapshots.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Snapshots.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Snapshots.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/StupidAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/StupidAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/StupidAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/TypePolicy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/TypePolicy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/TypePolicy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src18.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src18.cpp
+new file mode 100644
+index 0000000000..8039f26024
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src18.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/TypedObjectPrediction.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/TypedObjectPrediction.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/TypedObjectPrediction.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/VMFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/VMFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/VMFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/ValueNumbering.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/ValueNumbering.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/ValueNumbering.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/none/Trampoline-none.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/none/Trampoline-none.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/none/Trampoline-none.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/shared/BaselineCompiler-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/BaselineCompiler-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/BaselineCompiler-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/shared/CodeGenerator-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/CodeGenerator-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/CodeGenerator-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src19.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src19.cpp
+new file mode 100644
+index 0000000000..c4d8192b3b
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src19.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/shared/Lowering-shared.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/shared/Lowering-shared.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/shared/Lowering-shared.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsalloc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsalloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsalloc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsapi.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsapi.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsbool.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsbool.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsbool.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jscntxt.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jscntxt.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jscntxt.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jscompartment.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jscompartment.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jscompartment.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src2.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src2.cpp
+new file mode 100644
+index 0000000000..f9ee5a1f37
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src2.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "builtin/ModuleObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/ModuleObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/ModuleObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Object.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Object.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Object.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Profilers.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Profilers.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Profilers.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/Reflect.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/Reflect.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/Reflect.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/ReflectParse.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/ReflectParse.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/ReflectParse.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/SIMD.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/SIMD.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/SIMD.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src20.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src20.cpp
+new file mode 100644
+index 0000000000..4014315c08
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src20.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsdate.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsdate.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsdate.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsdtoa.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsdtoa.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsdtoa.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsexn.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsexn.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsexn.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsfriendapi.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsfriendapi.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsfriendapi.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsfun.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsfun.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsfun.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsgc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsgc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsgc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src21.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src21.cpp
+new file mode 100644
+index 0000000000..aba9fc0cb4
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src21.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsiter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsiter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsiter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsnativestack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsnativestack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsnativestack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsnum.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsnum.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsnum.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsobj.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsobj.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsobj.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "json.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "json.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "json.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsopcode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsopcode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsopcode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src22.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src22.cpp
+new file mode 100644
+index 0000000000..5a610ef6ac
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src22.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jsprf.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsprf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsprf.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jspropertytree.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jspropertytree.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jspropertytree.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsscript.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsscript.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsscript.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsstr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsstr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsstr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jswatchpoint.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jswatchpoint.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jswatchpoint.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jsweakmap.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jsweakmap.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jsweakmap.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src23.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src23.cpp
+new file mode 100644
+index 0000000000..357fb8b6a9
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src23.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "perf/jsperf.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "perf/jsperf.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "perf/jsperf.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/BaseProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/BaseProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/BaseProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/CrossCompartmentWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/CrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/CrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/DeadObjectProxy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/DeadObjectProxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/DeadObjectProxy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/DirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/DirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/DirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/OpaqueCrossCompartmentWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/OpaqueCrossCompartmentWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/OpaqueCrossCompartmentWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src24.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src24.cpp
+new file mode 100644
+index 0000000000..c9a4e53f85
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src24.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "proxy/Proxy.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/Proxy.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/Proxy.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/ScriptedDirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/ScriptedDirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/ScriptedDirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/ScriptedIndirectProxyHandler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/ScriptedIndirectProxyHandler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/ScriptedIndirectProxyHandler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/SecurityWrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/SecurityWrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/SecurityWrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "proxy/Wrapper.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "proxy/Wrapper.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "proxy/Wrapper.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ArgumentsObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ArgumentsObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ArgumentsObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src25.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src25.cpp
+new file mode 100644
+index 0000000000..aa66b36fb1
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src25.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/ArrayBufferObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ArrayBufferObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ArrayBufferObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/CallNonGenericMethod.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CallNonGenericMethod.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CallNonGenericMethod.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/CharacterEncoding.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CharacterEncoding.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CharacterEncoding.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/CodeCoverage.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/CodeCoverage.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/CodeCoverage.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Compression.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Compression.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Compression.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/DateTime.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/DateTime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/DateTime.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src26.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src26.cpp
+new file mode 100644
+index 0000000000..3d98b61795
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src26.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Debugger.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Debugger.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Debugger.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/DebuggerMemory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/DebuggerMemory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/DebuggerMemory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ErrorObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ErrorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ErrorObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ForOfIterator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ForOfIterator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ForOfIterator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/GeneratorObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/GeneratorObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/GeneratorObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/GlobalObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/GlobalObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/GlobalObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src27.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src27.cpp
+new file mode 100644
+index 0000000000..86af1e7327
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src27.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/HelperThreads.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/HelperThreads.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/HelperThreads.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Id.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Id.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Id.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Interpreter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Interpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Interpreter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/JSONParser.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/JSONParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/JSONParser.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/MemoryMetrics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/MemoryMetrics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/MemoryMetrics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Monitor.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Monitor.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Monitor.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src28.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src28.cpp
+new file mode 100644
+index 0000000000..9e43dfb736
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src28.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/NativeObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/NativeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/NativeObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ObjectGroup.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ObjectGroup.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ObjectGroup.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/PIC.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/PIC.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/PIC.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/PosixNSPR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/PosixNSPR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/PosixNSPR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Printer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Printer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Printer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Probes.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Probes.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Probes.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src29.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src29.cpp
+new file mode 100644
+index 0000000000..e4ac196768
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src29.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/ProxyObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ProxyObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ProxyObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ReceiverGuard.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ReceiverGuard.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ReceiverGuard.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/RegExpObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/RegExpObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/RegExpObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/RegExpStatics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/RegExpStatics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/RegExpStatics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Runtime.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Runtime.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Runtime.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SPSProfiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SPSProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SPSProfiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src3.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src3.cpp
+new file mode 100644
+index 0000000000..32bd1caa82
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src3.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "builtin/SymbolObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/SymbolObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/SymbolObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/TestingFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/TestingFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/TestingFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/TypedObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/TypedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/TypedObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/WeakMapObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/WeakMapObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/WeakMapObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "builtin/WeakSetObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "builtin/WeakSetObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "builtin/WeakSetObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "devtools/sharkctl.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "devtools/sharkctl.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "devtools/sharkctl.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src30.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src30.cpp
+new file mode 100644
+index 0000000000..a702a115ae
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src30.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/SavedStacks.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SavedStacks.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SavedStacks.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/ScopeObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/ScopeObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/ScopeObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SelfHosting.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SelfHosting.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SelfHosting.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Shape.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Shape.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Shape.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/SharedArrayObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/SharedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/SharedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Stack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Stack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Stack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src31.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src31.cpp
+new file mode 100644
+index 0000000000..b106a07280
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src31.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Stopwatch.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Stopwatch.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Stopwatch.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/String.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/String.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/String.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/StringBuffer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/StringBuffer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/StringBuffer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/StructuredClone.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/StructuredClone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/StructuredClone.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Symbol.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Symbol.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Symbol.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/TaggedProto.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TaggedProto.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TaggedProto.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src32.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src32.cpp
+new file mode 100644
+index 0000000000..e66ddb3e8a
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src32.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Time.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Time.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Time.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/TypeInference.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TypeInference.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TypeInference.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/TypedArrayObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/TypedArrayObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/TypedArrayObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UbiNode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UbiNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UbiNode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UbiNodeCensus.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UbiNodeCensus.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UbiNodeCensus.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/UnboxedObject.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/UnboxedObject.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/UnboxedObject.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src33.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src33.cpp
+new file mode 100644
+index 0000000000..bcf3f00370
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src33.cpp
+@@ -0,0 +1,37 @@
++#define MOZ_UNIFIED_BUILD
++#include "vm/Unicode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Unicode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Unicode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Value.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Value.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Value.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/WeakMapPtr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/WeakMapPtr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/WeakMapPtr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "vm/Xdr.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "vm/Xdr.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "vm/Xdr.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src4.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src4.cpp
+new file mode 100644
+index 0000000000..44163573c9
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src4.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "ds/LifoAlloc.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "ds/LifoAlloc.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "ds/LifoAlloc.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/BytecodeCompiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/BytecodeCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/BytecodeCompiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/BytecodeEmitter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/BytecodeEmitter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/BytecodeEmitter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/FoldConstants.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/FoldConstants.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/FoldConstants.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/NameFunctions.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/NameFunctions.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/NameFunctions.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/ParseMaps.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/ParseMaps.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/ParseMaps.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src5.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src5.cpp
+new file mode 100644
+index 0000000000..4a056d0b55
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src5.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "frontend/ParseNode.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/ParseNode.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/ParseNode.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "frontend/TokenStream.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "frontend/TokenStream.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "frontend/TokenStream.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Allocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Allocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Allocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Barrier.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Barrier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Barrier.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/GCTrace.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/GCTrace.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/GCTrace.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Iteration.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Iteration.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Iteration.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src6.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src6.cpp
+new file mode 100644
+index 0000000000..2c0af2b856
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src6.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "gc/Marking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Marking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Marking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Memory.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Memory.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Memory.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/MemoryProfiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/MemoryProfiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/MemoryProfiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Nursery.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Nursery.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Nursery.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/RootMarking.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/RootMarking.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/RootMarking.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Statistics.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Statistics.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Statistics.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src7.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src7.cpp
+new file mode 100644
+index 0000000000..edc5d0ddec
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src7.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "gc/Tracer.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Tracer.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Tracer.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Verifier.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Verifier.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Verifier.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "gc/Zone.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "gc/Zone.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "gc/Zone.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/NativeRegExpMacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/NativeRegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/NativeRegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpAST.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpAST.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpAST.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpEngine.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpEngine.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpEngine.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src8.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src8.cpp
+new file mode 100644
+index 0000000000..4150698a38
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src8.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "irregexp/RegExpInterpreter.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpInterpreter.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpInterpreter.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpMacroAssembler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpMacroAssembler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpMacroAssembler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpParser.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpParser.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpParser.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "irregexp/RegExpStack.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "irregexp/RegExpStack.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "irregexp/RegExpStack.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/AliasAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/AliasAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/AliasAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/AlignmentMaskAnalysis.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/AlignmentMaskAnalysis.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/AlignmentMaskAnalysis.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src9.cpp b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src9.cpp
+new file mode 100644
+index 0000000000..a02b358e40
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/Unified_cpp_js_src9.cpp
+@@ -0,0 +1,55 @@
++#define MOZ_UNIFIED_BUILD
++#include "jit/BacktrackingAllocator.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BacktrackingAllocator.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BacktrackingAllocator.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/Bailouts.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/Bailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/Bailouts.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineBailouts.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineBailouts.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineBailouts.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineCompiler.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineCompiler.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineCompiler.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineDebugModeOSR.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineDebugModeOSR.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineDebugModeOSR.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
++#include "jit/BaselineFrame.cpp"
++#ifdef PL_ARENA_CONST_ALIGN_MASK
++#error "jit/BaselineFrame.cpp uses PL_ARENA_CONST_ALIGN_MASK, so it cannot be built in unified mode."
++#undef PL_ARENA_CONST_ALIGN_MASK
++#endif
++#ifdef INITGUID
++#error "jit/BaselineFrame.cpp defines INITGUID, so it cannot be built in unified mode."
++#undef INITGUID
++#endif
+\ No newline at end of file
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/build/js-confdefs.h b/src/third_party/mozjs-45/platform/ppc64/linux/build/js-confdefs.h
+new file mode 100644
+index 0000000000..2b1a51d09f
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/build/js-confdefs.h
+@@ -0,0 +1,97 @@
++/* List of defines generated by configure. Included with preprocessor flag,
++ * -include, to avoid long list of -D defines on the compile command-line.
++ * Do not edit.
++ */
++
++#ifndef js_confdefs_h
++#define js_confdefs_h
++
++#define CPP_THROW_NEW throw()
++#define D_INO d_ino
++#define EDITLINE 1
++#define HAVE_64BIT_BUILD 1
++#define HAVE_ACOSH 1
++#define HAVE_ALLOCA_H 1
++#define HAVE_ASINH 1
++#define HAVE_ATANH 1
++#define HAVE_CBRT 1
++#define HAVE_CLOCK_MONOTONIC 1
++#define HAVE_CPP_AMBIGUITY_RESOLVING_USING 1
++#define HAVE_CPP_DYNAMIC_CAST_TO_VOID_PTR 1
++#define HAVE_DIRENT_H 1
++#define HAVE_DLOPEN 1
++#define HAVE_ENDIAN_H 1
++#define HAVE_EXPM1 1
++#define HAVE_GETC_UNLOCKED 1
++#define HAVE_GETOPT_H 1
++#define HAVE_GMTIME_R 1
++#define HAVE_GNU_LIBC_VERSION_H 1
++#define HAVE_I18N_LC_MESSAGES 1
++#define HAVE_LANGINFO_CODESET 1
++#define HAVE_LIBM 1
++#define HAVE_LINUX_QUOTA_H 1
++#define HAVE_LOCALECONV 1
++#define HAVE_LOCALECONV 1
++#define HAVE_LOCALTIME_R 1
++#define HAVE_LOG1P 1
++#define HAVE_LOG2 1
++#define HAVE_MALLOC_H 1
++#define HAVE_MALLOC_H 1
++#define HAVE_MALLOC_USABLE_SIZE 1
++#define HAVE_MBRTOWC 1
++#define HAVE_MEMALIGN 1
++#define HAVE_MEMORY_H 1
++#define HAVE_NL_TYPES_H 1
++#define HAVE_POSIX_FADVISE 1
++#define HAVE_POSIX_FALLOCATE 1
++#define HAVE_POSIX_MEMALIGN 1
++#define HAVE_RES_NINIT 1
++#define HAVE_SETLOCALE 1
++#define HAVE_SSIZE_T 1
++#define HAVE_STRNDUP 1
++#define HAVE_SYS_BITYPES_H 1
++#define HAVE_SYS_CDEFS_H 1
++#define HAVE_SYS_MOUNT_H 1
++#define HAVE_SYS_QUOTA_H 1
++#define HAVE_SYS_STATFS_H 1
++#define HAVE_SYS_STATVFS_H 1
++#define HAVE_SYS_VFS_H 1
++#define HAVE_THREAD_TLS_KEYWORD 1
++#define HAVE_TM_ZONE_TM_GMTOFF 1
++#define HAVE_UNISTD_H 1
++#define HAVE_VALLOC 1
++#define HAVE_VA_COPY 1
++#define HAVE_VISIBILITY_ATTRIBUTE 1
++#define HAVE_VISIBILITY_HIDDEN_ATTRIBUTE 1
++#define HAVE_WCRTOMB 1
++#define HAVE___CXA_DEMANGLE 1
++#define JS_CODEGEN_NONE 1
++#define JS_DEFAULT_JITREPORT_GRANULARITY 3
++#define JS_HAVE_ENDIAN_H 1
++#define JS_POSIX_NSPR 1
++#define JS_PUNBOX64 1
++#define JS_STANDALONE 1
++#define MALLOC_H <malloc.h>
++#define MALLOC_USABLE_SIZE_CONST_PTR
++#define MOZILLA_UAVERSION "45.0"
++#define MOZILLA_VERSION "45.8.0"
++#define MOZILLA_VERSION_U 45.8.0
++#define MOZJS_MAJOR_VERSION 45
++#define MOZJS_MINOR_VERSION 8
++#define MOZ_DEBUG_SYMBOLS 1
++#define MOZ_DLL_SUFFIX ".so"
++#define MOZ_GLUE_IN_PROGRAM 1
++#define MOZ_MEMORY 1
++#define MOZ_MEMORY_LINUX 1
++#define MOZ_UPDATE_CHANNEL default
++#define NO_NSPR_10_SUPPORT 1
++#define RELEASE_BUILD 1
++#define STDC_HEADERS 1
++#define VA_COPY va_copy
++#define XP_UNIX 1
++#define X_DISPLAY_MISSING 1
++#define _REENTRANT 1
++
++#include "js/RequiredDefines.h"
++
++#endif /* js_confdefs_h */
+diff --git a/src/third_party/mozjs-45/platform/ppc64/linux/include/js-config.h b/src/third_party/mozjs-45/platform/ppc64/linux/include/js-config.h
+new file mode 100644
+index 0000000000..e4dcddbe68
+--- /dev/null
++++ b/src/third_party/mozjs-45/platform/ppc64/linux/include/js-config.h
+@@ -0,0 +1,59 @@
++/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*-
++ * vim: set ts=8 sw=4 et tw=78:
++ *
++ * This Source Code Form is subject to the terms of the Mozilla Public
++ * License, v. 2.0. If a copy of the MPL was not distributed with this
++ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
++
++#ifndef js_config_h
++#define js_config_h
++
++/* Definitions set at build time that affect SpiderMonkey's public API.
++ This header file is generated by the SpiderMonkey configure script,
++ and installed along with jsapi.h. */
++
++/* Define to 1 if SpiderMonkey is in debug mode. */
++/* #undef JS_DEBUG */
++
++/* Define to 1 if SpiderMonkey should not use struct types in debug builds. */
++/* #undef JS_NO_JSVAL_JSID_STRUCT_TYPES */
++
++/* Define to 1 if SpiderMonkey should support multi-threaded clients. */
++/* #undef JS_THREADSAFE */
++
++/* Define to 1 if SpiderMonkey should include ctypes support. */
++/* #undef JS_HAS_CTYPES */
++
++/* Define to 1 if SpiderMonkey should support the ability to perform
++ entirely too much GC. */
++/* #undef JS_GC_ZEAL */
++
++/* Define to 1 if SpiderMonkey should use small chunks. */
++/* #undef JS_GC_SMALL_CHUNK_SIZE */
++
++/* Define to 1 to perform extra assertions and heap poisoning. */
++/* #undef JS_CRASH_DIAGNOSTICS */
++
++/* Define to 1 if the <endian.h> header is present and
++ useable. See jscpucfg.h. */
++#define JS_HAVE_ENDIAN_H 1
++
++/* Define to 1 if the <machine/endian.h> header is present and
++ useable. See jscpucfg.h. */
++/* #undef JS_HAVE_MACHINE_ENDIAN_H */
++
++/* Define to 1 if the <sys/isa_defs.h> header is present and
++ useable. See jscpucfg.h. */
++/* #undef JS_HAVE_SYS_ISA_DEFS_H */
++
++/* Define to 1 if SpiderMonkey is in NUNBOX32 mode. */
++/* #undef JS_NUNBOX32 */
++
++/* Define to 1 if SpiderMonkey is in PUNBOX64 mode. */
++#define JS_PUNBOX64 1
++
++/* MOZILLA JSAPI version number components */
++#define MOZJS_MAJOR_VERSION 45
++#define MOZJS_MINOR_VERSION 8
++
++#endif /* js_config_h */
diff --git a/use-system-mozjs-icu-asio.patch b/use-system-mozjs-icu-asio.patch
deleted file mode 100644
index 7049460..0000000
--- a/use-system-mozjs-icu-asio.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-diff --git a/SConstruct b/SConstruct
-index f949f65475..9008888d9f 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -156,7 +156,7 @@ add_option('wiredtiger',
- type='choice',
- )
-
--js_engine_choices = ['mozjs', 'none']
-+js_engine_choices = ['mozjs', 'none', 'mozjs-45']
- add_option('js-engine',
- choices=js_engine_choices,
- default=js_engine_choices[0],
-@@ -322,6 +322,11 @@ add_option('use-system-icu',
- nargs=0,
- )
-
-+add_option('use-system-mozjs',
-+ help="use system version of mozjs",
-+ nargs=0,
-+)
-+
- add_option('use-system-intel_decimal128',
- help='use system version of intel decimal128',
- nargs=0,
-@@ -2850,20 +2855,20 @@ def doConfigure(myenv):
-
- if use_system_version_of_library("icu"):
- conf.FindSysLibDep("icudata", ["icudata"])
-- # We can't use FindSysLibDep() for icui18n and icuuc below, since SConf.CheckLib() (which
-- # FindSysLibDep() relies on) doesn't expose an 'extra_libs' parameter to indicate that the
-- # library being tested has additional dependencies (icuuc depends on icudata, and icui18n
-- # depends on both). As a workaround, we skip the configure check for these two libraries and
-- # manually assign the library name. We hope that if the user has icudata installed on their
-- # system, then they also have icu18n and icuuc installed.
-- conf.env['LIBDEPS_ICUI18N_SYSLIBDEP'] = 'icui18n'
-- conf.env['LIBDEPS_ICUUC_SYSLIBDEP'] = 'icuuc'
-+ conf.FindSysLibDep("icuuc", ["icuuc"])
-+ conf.FindSysLibDep("icui18n", ["icui18n"])
-+
-+ if use_system_version_of_library("mozjs"):
-+ conf.FindSysLibDep("mozjs", [jsEngine])
-
- if wiredtiger and use_system_version_of_library("wiredtiger"):
- if not conf.CheckCXXHeader( "wiredtiger.h" ):
- myenv.ConfError("Cannot find wiredtiger headers")
- conf.FindSysLibDep("wiredtiger", ["wiredtiger"])
-
-+ if use_system_version_of_library("asio"):
-+ conf.CheckCXXHeader("asio.hpp")
-+
- conf.env.Append(
- CPPDEFINES=[
- "BOOST_SYSTEM_NO_DEPRECATED",
-@@ -3032,7 +3037,7 @@ def doConfigure(myenv):
- if conf.CheckExtendedAlignment(size):
- conf.env.SetConfigHeaderDefine("MONGO_CONFIG_MAX_EXTENDED_ALIGNMENT", size)
- break
--
-+
- conf.env['MONGO_HAVE_LIBMONGOC'] = conf.CheckLibWithHeader(
- ["mongoc-1.0"],
- ["mongoc.h"],
-@@ -3172,7 +3177,7 @@ Export("get_option")
- Export("has_option")
- Export("use_system_version_of_library")
- Export("serverJs")
--Export("usemozjs")
-+Export("usemozjs jsEngine")
- Export('module_sconscripts')
- Export("debugBuild optBuild")
- Export("wiredtiger")
-diff --git a/src/third_party/SConscript b/src/third_party/SConscript
-index 69c4a02a61..08c37aa89b 100644
---- a/src/third_party/SConscript
-+++ b/src/third_party/SConscript
-@@ -2,7 +2,7 @@
-
- import libdeps
-
--Import("env use_system_version_of_library usemozjs get_option")
-+Import("env use_system_version_of_library usemozjs jsEngine get_option")
- Import("wiredtiger")
-
- boostSuffix = "-1.60.0"
-@@ -51,12 +51,15 @@ if not use_system_version_of_library('zlib'):
- # hasn't offered a source tarball since 24, but in theory they could.
- #
- #if not use_system_version_of_library('mozjs'):
--if True:
-+if not use_system_version_of_library('mozjs'):
- thirdPartyIncludePathList.append(
- ('mozjs', ['#/src/third_party/mozjs' + mozjsSuffix + '/include',
- '#/src/third_party/mozjs' + mozjsSuffix + '/mongo_sources',
- '#/src/third_party/mozjs' + mozjsSuffix + '/platform/' + env["TARGET_ARCH"] + "/" + env["TARGET_OS"] + "/include",
- ]))
-+else:
-+ thirdPartyIncludePathList.append(
-+ ('mozjs', ['#/src/third_party/mozjs' + mozjsSuffix + '/mongo_sources', '/usr/include/'+jsEngine, ]))
-
- if "tom" in env["MONGO_CRYPTO"]:
- thirdPartyIncludePathList.append(
-@@ -223,6 +226,21 @@ if usemozjs:
- 'shim_zlib',
- ])
-
-+ if use_system_version_of_library("mozjs"):
-+ env.InjectThirdPartyIncludePaths(libraries=['mozjs'])
-+ mozjsEnv = env.Clone(
-+ SYSLIBDEPS=[
-+ env['LIBDEPS_MOZJS_SYSLIBDEP'],
-+ ])
-+ else:
-+ mozjsEnv = env.Clone()
-+ mozjsEnv.SConscript('mozjs' + mozjsSuffix + '/SConscript', exports={'env' : mozjsEnv })
-+ mozjsEnv = mozjsEnv.Clone(
-+ LIBDEPS=[
-+ 'mozjs' + mozjsSuffix + '/mozjs',
-+ 'shim_zlib',
-+ ])
-+
- mozjsEnv.Library(
- target="shim_mozjs",
- source=[
5 years, 11 months
Architecture specific change in rpms/golang-github-akrennmair-gopcap.git
by githook-noreply@fedoraproject.org
The package rpms/golang-github-akrennmair-gopcap.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/golang-github-akrennmair-gopcap.g....
Change:
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
Thanks.
Full change:
============
commit 4a8c556104f7915245b255655bd9b9ddfcf766f8
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Fri Jun 8 13:50:02 2018 +0200
Upload glide.lock and glide.yaml
diff --git a/glide.lock b/glide.lock
new file mode 100644
index 0000000..74aa63e
--- /dev/null
+++ b/glide.lock
@@ -0,0 +1,3 @@
+hash: 14c44035832b3d2f9a75691dbca33ad435510bed692f516c260f3d166380c078
+imports: []
+updated: '2018-06-08T11:47:28.436904+00:00'
diff --git a/glide.yaml b/glide.yaml
new file mode 100644
index 0000000..f2ea2d2
--- /dev/null
+++ b/glide.yaml
@@ -0,0 +1,3 @@
+import: []
+package: github.com/akrennmair/gopcap
+
diff --git a/golang-github-akrennmair-gopcap.spec b/golang-github-akrennmair-gopcap.spec
index e461ac5..9dbda7c 100644
--- a/golang-github-akrennmair-gopcap.spec
+++ b/golang-github-akrennmair-gopcap.spec
@@ -13,6 +13,8 @@ Summary: A simple wrapper around libpcap for the Go programming language
License: BSD
URL: %{gourl}
Source0: %{gosource}
+Source1: glide.lock
+Source2: glide.yaml
Patch0: Fix-formatting-error.patch
%description
@@ -36,9 +38,10 @@ building other packages which use import path with
%prep
%gosetup -q
%patch0 -p1
+cp %{SOURCE1} %{SOURCE2} .
%install
-%goinstall
+%goinstall glide.lock glide.yaml
%check
%gochecks
@@ -51,6 +54,7 @@ building other packages which use import path with
%changelog
* Fri Jun 08 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.9.git.git00e1103
- Update to spec 3.0
+ Upload glide.lock and glide.yaml
* Mon Feb 26 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.8.20150728git00e1103
- Autogenerate some parts using the new macros
commit b8058ee8117fa50fff470abf20169c63d93b8a8b
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Fri Jun 8 13:46:30 2018 +0200
Update to spec 3.0
diff --git a/.gitignore b/.gitignore
index 7f8002a..f782718 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1 @@
-/gopcap-00e1103.tar.gz
+/gopcap-00e11033259acb75598ba416495bb708d864a010.tar.gz
diff --git a/Fix-formatting-error.patch b/Fix-formatting-error.patch
new file mode 100644
index 0000000..eb53482
--- /dev/null
+++ b/Fix-formatting-error.patch
@@ -0,0 +1,25 @@
+From e100ad337aee8a5974da57d480718ca03b23130f Mon Sep 17 00:00:00 2001
+From: Jan Chaloupka <jchaloup(a)redhat.com>
+Date: Fri, 8 Jun 2018 13:44:21 +0200
+Subject: [PATCH] Fix formatting error
+
+---
+ decode.go | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/decode.go b/decode.go
+index 4db19c0..5d26931 100644
+--- a/decode.go
++++ b/decode.go
+@@ -115,7 +115,7 @@ func (p *Packet) headerString(headers []interface{}) string {
+ if len(headers) >= 2 {
+ if addr, ok := headers[0].(addrHdr); ok {
+ if _, ok := headers[1].(addrHdr); ok {
+- return fmt.Sprintf("%s > %s IP in IP: ",
++ return fmt.Sprintf("%s > %s IP in IP: %s",
+ addr.SrcAddr(), addr.DestAddr(), p.headerString(headers[1:]))
+ }
+ }
+--
+2.7.5
+
diff --git a/golang-github-akrennmair-gopcap.spec b/golang-github-akrennmair-gopcap.spec
index 2727d05..e461ac5 100644
--- a/golang-github-akrennmair-gopcap.spec
+++ b/golang-github-akrennmair-gopcap.spec
@@ -1,20 +1,19 @@
# https://github.com/akrennmair/gopcap
-%global provider_prefix github.com/akrennmair/gopcap
-%global gobaseipath %{provider_prefix}
+%global goipath github.com/akrennmair/gopcap
%global commit 00e11033259acb75598ba416495bb708d864a010
-%global commitdate 20150728
-%gocraftmeta -i
+%gometa -i
Name: %{goname}
Version: 0
-Release: 0.8.%{commitdate}git%{shortcommit}%{?dist}
+Release: 0.9.git%{?dist}
Summary: A simple wrapper around libpcap for the Go programming language
# Detected licences
# - BSD (3 clause) at 'LICENSE'
License: BSD
URL: %{gourl}
Source0: %{gosource}
+Patch0: Fix-formatting-error.patch
%description
%{summary}
@@ -32,26 +31,27 @@ Requires: libpcap-devel
This package contains library source intended for
building other packages which use import path with
-%{gobaseipath} prefix.
+%{goipath} prefix.
%prep
-%gosetup
+%gosetup -q
+%patch0 -p1
%install
%goinstall
%check
-%gochecks %{gobaseipath}
+%gochecks
# github.com/akrennmair/gopcap
#./decode.go:118: Sprintf call needs 2 args but has 3 args
-#define license tag if not already defined
-%{!?_licensedir:%global license %doc}
-
%files devel -f devel.file-list
%license LICENSE
%changelog
+* Fri Jun 08 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.9.git.git00e1103
+- Update to spec 3.0
+
* Mon Feb 26 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.8.20150728git00e1103
- Autogenerate some parts using the new macros
diff --git a/sources b/sources
index 4971187..a9f106f 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-834add352c2cb69da43ac9df6c67624c gopcap-00e1103.tar.gz
+SHA512 (gopcap-00e11033259acb75598ba416495bb708d864a010.tar.gz) = b0ecab1bfd801ddca86266444a8342e22e1981d0ef8577b8bea88327b8a8b217fa09ae88a065a2efb85e285d06954345b54774ed9e03035a8ebaf1624cefcda1
commit b68878d0f645d5ae853cb5c5760bd1c9be1f8780
Author: Jan Chaloupka <jchaloup(a)redhat.com>
Date: Mon Feb 26 12:18:42 2018 +0100
Autogenerate some parts using the new macros
diff --git a/golang-github-akrennmair-gopcap.spec b/golang-github-akrennmair-gopcap.spec
index c34dc22..2727d05 100644
--- a/golang-github-akrennmair-gopcap.spec
+++ b/golang-github-akrennmair-gopcap.spec
@@ -1,169 +1,60 @@
-# If any of the following macros should be set otherwise,
-# you can wrap any of them with the following conditions:
-# - %%if 0%%{centos} == 7
-# - %%if 0%%{?rhel} == 7
-# - %%if 0%%{?fedora} == 23
-# Or just test for particular distribution:
-# - %%if 0%%{centos}
-# - %%if 0%%{?rhel}
-# - %%if 0%%{?fedora}
-#
-# Be aware, on centos, both %%rhel and %%centos are set. If you want to test
-# rhel specific macros, you can use %%if 0%%{?rhel} && 0%%{?centos} == 0 condition.
-# (Don't forget to replace double percentage symbol with single one in order to apply a condition)
-
-# Generate devel rpm
-%global with_devel 1
-# Build project from bundled dependencies
-%global with_bundled 0
-# Build with debug info rpm
-%global with_debug 0
-# Run tests in check section
-%global with_check 1
-# Generate unit-test rpm
-%global with_unit_test 1
-
-%if 0%{?with_debug}
-%global _dwz_low_mem_die_limit 0
-%else
-%global debug_package %{nil}
-%endif
-
-%global provider github
-%global provider_tld com
-%global project akrennmair
-%global repo gopcap
# https://github.com/akrennmair/gopcap
-%global provider_prefix %{provider}.%{provider_tld}/%{project}/%{repo}
-%global import_path %{provider_prefix}
+%global provider_prefix github.com/akrennmair/gopcap
+%global gobaseipath %{provider_prefix}
%global commit 00e11033259acb75598ba416495bb708d864a010
-%global shortcommit %(c=%{commit}; echo ${c:0:7})
+%global commitdate 20150728
-Name: golang-%{provider}-%{project}-%{repo}
+%gocraftmeta -i
+
+Name: %{goname}
Version: 0
-Release: 0.7.git%{shortcommit}%{?dist}
+Release: 0.8.%{commitdate}git%{shortcommit}%{?dist}
Summary: A simple wrapper around libpcap for the Go programming language
# Detected licences
# - BSD (3 clause) at 'LICENSE'
License: BSD
-URL: https://%{provider_prefix}
-Source0: https://%{provider_prefix}/archive/%{commit}/%{repo}-%{shortcommit}.tar.gz
-
-# e.g. el6 has ppc64 arch without gcc-go, so EA tag is required
-ExclusiveArch: %{?go_arches:%{go_arches}}%{!?go_arches:%{ix86} x86_64 aarch64 %{arm}}
-# If go_compiler is not set to 1, there is no virtual provide. Use golang instead.
-BuildRequires: %{?go_compiler:compiler(go-compiler)}%{!?go_compiler:golang}
+URL: %{gourl}
+Source0: %{gosource}
%description
%{summary}
-%if 0%{?with_devel}
%package devel
Summary: %{summary}
BuildArch: noarch
-%if 0%{?with_check}
BuildRequires: libpcap-devel
-%endif
Requires: libpcap-devel
-Provides: golang(%{import_path}) = %{version}-%{release}
-
%description devel
%{summary}
This package contains library source intended for
building other packages which use import path with
-%{import_path} prefix.
-%endif
-
-%if 0%{?with_unit_test} && 0%{?with_devel}
-%package unit-test-devel
-Summary: Unit tests for %{name} package
-%if 0%{?with_check}
-#Here comes all BuildRequires: PACKAGE the unit tests
-#in %%check section need for running
-%endif
-
-# test subpackage tests code from devel subpackage
-Requires: %{name}-devel = %{version}-%{release}
-
-%if 0%{?with_check}
-%endif
-
-%description unit-test-devel
-%{summary}
-
-This package contains unit tests for project
-providing packages with %{import_path} prefix.
-%endif
+%{gobaseipath} prefix.
%prep
-%setup -q -n %{repo}-%{commit}
-
-%build
+%gosetup
%install
-# source codes for building projects
-%if 0%{?with_devel}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-echo "%%dir %%{gopath}/src/%%{import_path}/." >> devel.file-list
-# find all *.go but no *_test.go files and generate devel.file-list
-for file in $(find . -iname "*.go" \! -iname "*_test.go") ; do
- echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> devel.file-list
-done
-%endif
-
-# testing files for this project
-%if 0%{?with_unit_test} && 0%{?with_devel}
-install -d -p %{buildroot}/%{gopath}/src/%{import_path}/
-# find all *_test.go files and generate unit-test-devel.file-list
-for file in $(find . -iname "*_test.go"); do
- echo "%%dir %%{gopath}/src/%%{import_path}/$(dirname $file)" >> devel.file-list
- install -d -p %{buildroot}/%{gopath}/src/%{import_path}/$(dirname $file)
- cp -pav $file %{buildroot}/%{gopath}/src/%{import_path}/$file
- echo "%%{gopath}/src/%%{import_path}/$file" >> unit-test-devel.file-list
-done
-%endif
-
-%if 0%{?with_devel}
-sort -u -o devel.file-list devel.file-list
-%endif
+%goinstall
%check
-%if 0%{?with_check} && 0%{?with_unit_test} && 0%{?with_devel}
-%if ! 0%{?with_bundled}
-export GOPATH=%{buildroot}/%{gopath}:%{gopath}
-%else
-export GOPATH=%{buildroot}/%{gopath}:$(pwd)/Godeps/_workspace:%{gopath}
-%endif
-
-%if ! 0%{?gotest:1}
-%global gotest go test
-%endif
-
-%gotest %{import_path}
-%endif
+%gochecks %{gobaseipath}
+# github.com/akrennmair/gopcap
+#./decode.go:118: Sprintf call needs 2 args but has 3 args
#define license tag if not already defined
%{!?_licensedir:%global license %doc}
-%if 0%{?with_devel}
%files devel -f devel.file-list
%license LICENSE
-%dir %{gopath}/src/%{provider}.%{provider_tld}/%{project}
-%endif
-
-%if 0%{?with_unit_test} && 0%{?with_devel}
-%files unit-test-devel -f unit-test-devel.file-list
-%license LICENSE
-%endif
%changelog
+* Mon Feb 26 2018 Jan Chaloupka <jchaloup(a)redhat.com> - 0-0.8.20150728git00e1103
+- Autogenerate some parts using the new macros
+
* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> - 0-0.7.git00e1103
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
5 years, 11 months